gpt4 book ai didi

python - 将行值替换为具有列名的匹配行值

转载 作者:太空宇宙 更新时间:2023-11-04 11:07:28 26 4
gpt4 key购买 nike

我的数据框看起来低于格式

fdf = pd.DataFrame([{'name': 'john', 'john': np.nan, 'mac': np.nan,'val':22}, {'name': 'mac', 'john': np.nan, 'mac': np.nan,'val':55}], columns=["name", "john", "mac",'val'])


fdf
Out[466]:
name john mac val
0 john NaN NaN 22
1 mac NaN NaN 55

我想用符合列名的匹配行值替换 NaN 值

输出

fdf
Out[466]:
name john mac val
0 john 22 NaN 22
1 mac NaN 55 55

此处 name 列值的第 1 行是 john,对应的 val 列值为 22,因此替换匹配列名 john 中的值。

任何帮助感谢

最佳答案

您可以使用 df.combine_first()/df.update()unstack() 之后:

s=fdf.set_index('name',append=True)['val'].unstack()
fdf = fdf.combine_first(s).reindex(columns=fdf.columns) #preferred for updating NaN
#or update:-> fdf.update(s)

   name  john   mac  val
0 john 22.0 NaN 22
1 mac NaN 55.0 55

关于python - 将行值替换为具有列名的匹配行值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59092403/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com