gpt4 book ai didi

python - 将列系列中的值替换为值为 1 的相应行

转载 作者:行者123 更新时间:2023-11-28 16:57:20 26 4
gpt4 key购买 nike

我有一个包含 3842 行和 36 列的 csv 表,类似于:

Time,chlo,coord1,coord2,coord3 

2003,0.52, NaN, NaN, 1.0

2003,0.56, NaN, 1.0, NaN

2003,0.58, 1.0, NaN, NaN

我需要一个代码,它会在每一行中分别用左列 CHLO 中的值自动替换 1.0。最后,CHLO 列应该消失。

最终结果类似于:

Time,coord1,coord2,coord3 

2003, NaN, NaN, 0.52

2003, NaN, 0.56, NaN

2003, 0.58, NaN, NaN

我是初学者,我学习了一些 python 的基础知识,并设法编写了将数据排序到一定级别的代码。但是要做到以上几点,我不知道。我需要它来组织研究项目的数据。

我阅读了有关数组、迭代、字典的解释,但无法找到我需要的内容。如果有人能给我提示,我将不胜感激!

最佳答案

使用DataFrame.mask按条件替换,DataFrame.pop用于提取列 chlo

如果第一列不是索引:

df.iloc[:, 2:] = df.iloc[:, 2:].mask(df == 1, df.pop('chlo'), axis=0)
print (df)
Time coord1 coord2 coord3
0 2003 NaN NaN 0.52
1 2003 NaN 0.56 NaN
2 2003 1.0 NaN NaN

如果第一列是索引:

df = df.mask(df == 1, df.pop('chlo'), axis=0)
print (df)

coord1 coord2 coord3
Time
2003 NaN NaN 0.52
2003 NaN 0.56 NaN
2003 0.58 NaN NaN

关于python - 将列系列中的值替换为值为 1 的相应行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57142514/

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