2024-10-03 02:35:01 发布
网友
我有这样一个数据帧:
Num A B C D 1 wer 1 df 1 ffg 2 asd 2 vb 3 ncnc 3 oiji 4 qwe
我将首先基于Num过滤掉,假设我过滤Num = 1
Num
Num = 1
现在我需要从一个变量中添加值,wer和{}相遇的单元格,类似地,ffg和{}
wer
ffg
Num A B C D 1 wer 5 1 df 1 ffg 7
如果已经存在某个值,则应使用新值替换它
或者更容易阅读、更干净的方法:
df2=df[df['Num']==1] df2.loc[df2['A']=='wer','C']=5 df2.loc[df2['A']=='ffg','D']=7
或要跳过警告,请按索引执行:
两种情况:
print(df2)
是:
Num A B C D 0 1 wer NaN 5.0 NaN 1 1 df NaN NaN NaN 2 1 ffg NaN NaN 7.0
如果要将其放回实际数据帧:
df[df['Num']==1]=df2
布尔索引是Pandas的基础:read Indexing and Selecting Data。在
对于您的问题,您可以构造布尔掩码,并将它们组合起来用^{}更新值:
num_mask = df['num'] == 1 df.loc[num_mask & df['A'].eq('wer'), 'C'] = 5 df.loc[num_mask & df['A'].eq('ffg'), 'D'] = 7
由于最昂贵的部分通常是构造布尔序列,因此在可能的情况下重用它们是很好的实践。在
或者更容易阅读、更干净的方法:
或要跳过警告,请按索引执行:
^{pr2}$两种情况:
是:
如果要将其放回实际数据帧:
布尔索引是Pandas的基础:read Indexing and Selecting Data。在
对于您的问题,您可以构造布尔掩码,并将它们组合起来用^{} 更新值:
由于最昂贵的部分通常是构造布尔序列,因此在可能的情况下重用它们是很好的实践。在
相关问题 更多 >
编程相关推荐