首页 > 解决方案 > 我想更改特定索引的列值

问题描述

df = pd.read_csv('test.txt',dtype=str)
print(df)

    HE   WE
0   aa  NaN
1  181   76
2   22   13
3  NaN  NaN

我想用以下索引覆盖这些数据帧中的任何一个

dff = pd.DataFrame({'HE' : [100,30]},index=[1,2])
print(dff)

    HE
1  100
2   30

for i in dff.index:
    df._set_value(i,'HE',dff._get_value(i,'HE'))

print(df)

    HE   WE
0   aa  NaN
1  100   76
2   30   13
3  NaN  NaN

有没有办法在不使用'for'的情况下一次改变它?

标签: pythonpandasdataframenumpy

解决方案


使用DataFrame.update,(就地工作):

df.update(dff)
print (df)
    HE    WE
0   aa   NaN
1  100  76.0
2   30  13.0
3  NaN   NaN

推荐阅读