我有两个几乎相同的列名的数据集。在第一个中,我要检测“-”值并替换为第二个数据集的值

时间:2019-06-07 21:12:31

标签: python-3.x pandas

  

Blockquote

数据集1

   #timestamp                  KARD_BOZYAKA_RES             ILET_GOKDAG_RES            
 0 6.06.2019 00:00                    -                           10
 1 6.06.2019 01:00                    -                          17,2   
 2 6.06.2019 02:00                    -                          13,1   

数据集2

   #timestamp         KARD_BOZYAKA_RES_Current Forecast  ILET_GOKDAG_RES_Current Forecast
 0 6.06.2019 00:00                 5,12                               21,7
 1 6.06.2019 01:00                 7,32                               19,3
 2 6.06.2019 02:00                  4,8                               14,6

列太多,但为了清楚显示,我没有全部键入。我想检测DATASET 1中的“-”值,并将其替换为DATASET 2的值。两个数据集具有1个相同的列(#timestamp),但其他列名称几乎没有什么不同。

1 个答案:

答案 0 :(得分:0)

df1.set_index('timestamp', inplace = True)
df2.set_index('timestamp', inplace = True)


df1.loc[df1['KARD_BOZYAKA_RES'] == "-", 'KARD_BOZYAKA_RES'] = df2.loc[df1['KARD_BOZYAKA_RES'] == "-", 'KARD_BOZYAKA_RES_Current Forecast']

确保它们具有相同的索引,然后在df2中查找“-”,然后将其设置为df2值。只要索引匹配,它就会起作用。如果索引已经匹配,则不需要前两行。