具有条件的两个数据帧的和值



情况如下:在";对于";循环我将csv文件作为数据帧读取,并将它们添加到一个主要的大df中。如果新数据还没有在主df中,那么它将简单地连接到主df。如果新数据在主df中已经有相同的值,则必须与前一个值求和。

一个例子:

main_df=
building,  day,  kw/h
1,         1,    50
1,         2,    55
2,         1,    30
2,         2,    40
new_df_1=
building,  day,  kw/h
3,         1,    55
3,         2,    58
new_df_2=
building,  day,  kw/h
2,         1,    15
2,         2,    19
2,         3,    14

new_df2将简单地连接到main_df,但new_df2必须与现有数据求和。因此,愿望的答案将是:

building,  day,  kw/h
1,         1,    50
1,         2,    55
2,         1,    45
2,         2,    59
2,         3,    14
3,         1,    55
3,         2,    58

问题:1。我如何检查,maindf中是否已经有同一栋楼和同一天?2.如何将";KW/h";库姆斯?我的意思是:

for csv in path_list:
read= pd.read_csv(csv)
if ( **already exist** ):
**sum with old values**
else:
main_df= pd.concat([main_df,read])


我在寻找一些函数,比如";合并";带有指示器";on=";自动找到正确的值并求和。但我什么也找不到。任何想法都会有所帮助。

连接三个DF,然后求和建筑物和日的千瓦/小时

df=pd.concat([main_df, new_df1, new_df2])
df=df.groupby(['building','day'], as_index=False)['kw/h'].sum()
df
building    day     kw/h
0          1      1     50
1          1      2     55
2          2      1     45
3          2      2     59
4          2      3     14
5          3      1     55
6          3      2     58

最新更新