使用Python将两个CSV文件与案例合并
在此过程中,我需要按照一些规则将两个数据文件合并在一起。我对如何使用pandas创建和合并csv略知一二,但我不知道如何遵循某些规则 例如,我有两个文件: 实际_data.csv使用Python将两个CSV文件与案例合并,python,pandas,csv,merge,Python,Pandas,Csv,Merge,在此过程中,我需要按照一些规则将两个数据文件合并在一起。我对如何使用pandas创建和合并csv略知一二,但我不知道如何遵循某些规则 例如,我有两个文件: 实际_data.csv type region_1 region_2 date data aw west 2 10/01/2017 0.9318274971234 hss east 3 05/12/2015 0.71
type region_1 region_2 date data
aw west 2 10/01/2017 0.9318274971234
hss east 3 05/12/2015 0.7136487234972
. . . . .
. . . . .
. . . . .
forecast_data.csv
type region_1 region_2 date data
jad north 22 11/13/2025 0.71283741932
js east 3 04/16/2023 0.16238471239
. . . . .
. . . . .
. . . . .
我需要按照以下规则合并这些文件:
- 一种解决方案是先使用pandas
组合
- 这里我假设两个数据帧的形状相同
- 在这里,我优先考虑所有的专栏
- 可以在要从第一个df中拾取的列上循环
- 下面是一个小例子,说明如何实现类似的目标李>
# df1
a b
0 1.0 x
1 2.0 y
2 NaN z
#df2
a b
0 1 a
1 3 b
2 4 c
#df
a b
0 1.0 x
1 2.0 y
2 4.0 z
- 参考:
['type',region\u 1',region\u 2']
,2个日期列(date\u-fore
,date\u-act
),和2个数据列(data\u-fore
,date\u-act
)。从那里,您可以用预测日期填充实际日期的空值,然后根据需要将其折叠为一列:
res['date'] = res['date_act'].fillna(res['date_fore'])
res.drop(['date_fore', 'date_act'], axis=1, inplace=True)
对于数据,这是一个类似的操作:
res['data'] = res['data_act'].fillna(res['data_fore'])
res.drop(['data_fore', 'data_act'], axis=1, inplace=True)
res['date'] = res['date_act'].fillna(res['date_fore'])
res.drop(['date_fore', 'date_act'], axis=1, inplace=True)
res['data'] = res['data_act'].fillna(res['data_fore'])
res.drop(['data_fore', 'data_act'], axis=1, inplace=True)