Skip to main content
 首页 » 编程设计

python之Pandas:如何使用其他数据框的列替换数据框中的值

2025年05月04日11shangdawei

我想将数据框 A 中的值替换为“1”,并使用另一个数据框作为映射它的引用,如下所示:

原始数据框A:

Index  201901    201902    201903 
a      0         0         0 
b      0         0         0 
c      0         0         0 
d      0         0         0 

引用数据框 B

Index  Month 
a      201902 
b      201901 

结果数据框C

Index  201901    201902    201903 
a      0         1         0 
b      1         0         0 
c      0         0         0 
d      0         0         0 

我尝试过使用 loc,但还没有找到让它工作的方法。 有什么建议吗?

请您参考如下方法:

您可以使用 df.iterrows() 遍历第二个数据帧的行,并使用 df.at[] 设置您需要的值。

df = pd.DataFrame([[0,0,0], [0,0,0], [0,0,0], [0,0,0]], columns=['201901', '201902', '201903']) 
df.index=['a', 'b','c', 'd'] 
print(df) 
#    201901  201902  201903 
# a       0       0       0 
# b       0       0       0 
# c       0       0       0 
# d       0       0       0 
 
dfb = pd.DataFrame(['201902', '201901'], columns=['month']) 
dfb.index = ['a', 'b'] 
print(dfb) 
#     month 
# a  201902 
# b  201901 
 
for i, row in dfb.iterrows(): 
    df.at[i, row] = 1 
 
print(df) 
#    201901  201902  201903 
# a       0       1       0 
# b       1       0       0 
# c       0       0       0 
# d       0       0       0