如果新 table 包含新数据 python pandas,则将行附加到现有 table
append rows to existing table if new table contain new data python pandas
我有两个 dataframes.First 一个是参考 df,第二个是新 df。
参考 df:
data = {'Machine': ['M1','M2','M2','M4','M4'],
'Type': ['A1', 'D1', 'D2', 'A2','A5'],
'Prod/RT': [0.002315, 0.012500, 0.046154, 0.008333,0.030000]}
df=pd.DataFrame.from_dict(data)
df
新的 df:
datanew = {'Machine': ['M11','M2','M22','M4','M44','M55','M21'],
'Type': ['A1', 'D1', 'D2', 'A2','A5','B4','A2'],
'Speed': ['L1', 'L2', 'L1', 'L7','L0','L9','L2'],
'Weight': [12,45,87,45,83,25,23],
'Prod': [200, 0, 180, 0,100,700,0],
'RT': [43200,0,3900,0,15000,40000,0]}
df1=pd.DataFrame.from_dict(datanew)
df1['Prod/RT']=df1['Prod']/df1['RT']
df1
我想做的是检查新 df 是否包含 新机器和类型组合以及 'Prod/RT' 值将其作为新行追加到 ref。数据框。如果 新 Machine/Type 组合包含 'Prod/RT' 的缺失值,则无需更新该条目。
例如:
预期的 df 应该是:
我用 combine_first 尝试过,但没有给出预期的结果。
非常感谢您的支持!!!!!!!!
尝试 concat
然后 drop_duplicates
out = pd.concat([df,df1[df.columns]]).drop_duplicates().dropna()
Machine Type Prod/RT
0 M1 A1 0.002315
1 M2 D1 0.012500
2 M2 D2 0.046154
3 M4 A2 0.008333
4 M4 A5 0.030000
0 M11 A1 0.004630
2 M22 D2 0.046154
4 M44 A5 0.006667
5 M55 B4 0.017500
我有两个 dataframes.First 一个是参考 df,第二个是新 df。
参考 df:
data = {'Machine': ['M1','M2','M2','M4','M4'],
'Type': ['A1', 'D1', 'D2', 'A2','A5'],
'Prod/RT': [0.002315, 0.012500, 0.046154, 0.008333,0.030000]}
df=pd.DataFrame.from_dict(data)
df
新的 df:
datanew = {'Machine': ['M11','M2','M22','M4','M44','M55','M21'],
'Type': ['A1', 'D1', 'D2', 'A2','A5','B4','A2'],
'Speed': ['L1', 'L2', 'L1', 'L7','L0','L9','L2'],
'Weight': [12,45,87,45,83,25,23],
'Prod': [200, 0, 180, 0,100,700,0],
'RT': [43200,0,3900,0,15000,40000,0]}
df1=pd.DataFrame.from_dict(datanew)
df1['Prod/RT']=df1['Prod']/df1['RT']
df1
我想做的是检查新 df 是否包含 新机器和类型组合以及 'Prod/RT' 值将其作为新行追加到 ref。数据框。如果 新 Machine/Type 组合包含 'Prod/RT' 的缺失值,则无需更新该条目。
例如: 预期的 df 应该是:
我用 combine_first 尝试过,但没有给出预期的结果。
非常感谢您的支持!!!!!!!!
尝试 concat
然后 drop_duplicates
out = pd.concat([df,df1[df.columns]]).drop_duplicates().dropna()
Machine Type Prod/RT
0 M1 A1 0.002315
1 M2 D1 0.012500
2 M2 D2 0.046154
3 M4 A2 0.008333
4 M4 A5 0.030000
0 M11 A1 0.004630
2 M22 D2 0.046154
4 M44 A5 0.006667
5 M55 B4 0.017500