我试图在熊猫身上做到以下几点: 我有2个数据帧,它们都有很多列。 数据帧1有一个列a,这是我的任务感兴趣的; DataFrame 2有感兴趣的列B和C。在
需要做的是:遍历A列中的值,看看B列中是否存在相同的值。如果存在,则在Dataframe 1中创建一个列D,并用C中的值填充其相应的单元格,该值与从B中找到的值位于同一行。 如果A中的值在B中不存在,则用0填充D中的单元格。在
for i in range(len(df1)):
if df1['A'].iloc[i] in df2.B.values:
df1['D'].iloc[i] = df2['C'].iloc[i]
else:
df1['D'].iloc[i] = 0
这给了我一个错误:关键字“D”。如果我提前创建列D并填充它,例如,使用0,那么我会得到以下警告:一个值正试图在来自数据帧的切片的副本上设置。我怎么解决这个问题?或者有更好的方法来完成我想做的事情吗?在
非常感谢你的帮助!在
如果我理解正确:
考虑到这两个数据帧:
使用合并可以实现您想要的效果:
^{pr2}$然后重命名列:
相关问题 更多 >
编程相关推荐