python轨迹数据插值+平滑+路网匹配
jupter代码报错
FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead.
是把append 换成pd.concat吗?
是的,这个警告是在告诉你 DataFrame.append() 方法即将被弃用,并建议使用 pd.concat() 方法代替。因此,你可以将代码中的 append() 方法替换为 concat() 方法,以避免将来版本的警告:
# 将这行代码
result_df = result_df.append(grouped_df, ignore_index=True)
# 改为这样
result_df = pd.concat([result_df, grouped_df], ignore_index=True)
如果以上回答对您有所帮助,点击一下采纳该答案~谢谢
是的,原来的函数append准备弃用,建议使用concat函数,你按照提示替换就行了
堆叠就是简单地把两个表拼在一起,也被称作轴向连接、绑定或连接。依照轴的方向,数据堆叠可以分为横向堆叠和纵向堆叠。
concat方法相当于数据库中的全连接(UNION ALL),可以指定按某个轴进行连接。
下面以该表为例演示:
当axis=1的时候,concat作行对齐,然后将不同名称的两张或多张表合并。当两个表的索引不完全一致时,可以使用join来指定连接方式:内连接(inner交集)、外连接(outer并集)。内连接仅仅返回多表间索引重叠的部分,外连接则返回索引的并集部分数据,不足的部分使用空值填补。若多表的索引完全一致时,不论内连接还是外连接,结果都是将表按照x轴向拼接。
import numpy as np
import pandas as pd
from sqlalchemy import create_engine
# 创建数据库连接
engine = create_engine('mysql+pymysql://root:12345678@127.0.0.1:3306/testdb?charset=utf8')
# 读取mysql数据
detail = pd.read_sql('meal_order_detail1',con=engine)
df1 = detail.iloc[:,:10] # 取出前10列数据
df2 = detail.iloc[:,10:] # 取出后9列数据
print('合并df1的大小为%s,df2的大小为%s。'%(df1.shape,df2.shape))
print('外连接后的数据框大小为:',pd.concat([df1,df2],axis=1,join='outer').shape)
print('内连接后的数据框大小为:',pd.concat([df1,df2],axis=1,join='inner').shape)
合并df1的大小为(2779, 10),df2的大小为(2779, 9)。
外连接后的数据框大小为: (2779, 19)
内连接后的数据框大小为: (2779, 19)
当axis=0时(默认),concat做列对齐,将不同行索引的两张或多张表纵向合并。当表的列名不完全一致时,同样可以使用join参数:内连接(inner交集)、外连接(outer并集)。内连接仅仅返回多表间索引重叠的部分,外连接则返回索引的并集部分数据,不足的部分使用空值填补。若多表的索引完全一致时,不论内连接还是外连接,结果都是将表按照y轴向拼接。
df3 = detail.iloc[:1500,:] # 取出前1500行数据
df4 = detail.iloc[1500:,:] # 取出后1500行数据
print('合并df3的大小为%s,df4的大小为%s。'%(df3.shape,df4.shape))
print('内连接纵向合并数据后的数据框大小为:',pd.concat([df3,df4],axis=0,join='outer').shape)
print('外连接纵向合并数据后的数据框大小为:',pd.concat([df3,df4],axis=0,join='inner').shape)
合并df3的大小为(1500, 19),df4的大小为(1279, 19)。
内连接纵向合并数据后的数据框大小为: (2779, 19)
外连接纵向合并数据后的数据框大小为: (2779, 19)
除了可以使用concat纵向堆叠外,还可以使用append方法实现总向表的堆叠,但前提是两张表的列名必须完全一致。
pandas.DataFrame.append(self,other,ignore_index,verify_integrity=False)
print('合并df3的大小为%s,df4的大小为%s。'%(df3.shape,df4.shape))
print('append纵向堆叠后的数据框大小为:',df3.append(df4).shape)
合并df3的大小为(1500, 19),df4的大小为(1279, 19)。
append纵向堆叠后的数据框大小为: (2779, 19)