gpt4 book ai didi

python - 如何更改数据框 Python 中的值

转载 作者:太空狗 更新时间:2023-10-29 17:41:05 26 4
gpt4 key购买 nike

我已经搜索了过去 30 分钟的答案,但唯一的解决方案是针对单个列或在 R 中。我有一个数据集,我想将其中的 ('Y/N') 值更改为分别为 1 和 0。感觉复制粘贴17次以下的代码效率很低。

df.loc[df.infants == 'n', 'infants'] = 0
df.loc[df.infants == 'y', 'infants'] = 1
df.loc[df.infants == '?', 'infants'] = 1

我的解决方案如下。这不会导致错误,但数据框中的值不会改变。我假设我需要做类似 df = df_new 的事情。但如何做到这一点?

for coln in df:
for value in coln:
if value == 'y':
value = '1'
elif value == 'n':
value = '0'
else:
value = '1'

编辑:此数据集中有 17 列,但我希望处理另一个包含 56 列的数据集。

republican  n   y   n.1 y.1 y.2 y.3 n.2 n.3 n.4 y.4 ?   y.5 y.6 y.7 n.5 y.8
0 republican n y n y y y n n n n n y y y n ?
1 democrat ? y y ? y y n n n n y n y y n n
2 democrat n y y n ? y n n n n y n y n n y
3 democrat y y y n y y n n n n y ? y y y y
4 democrat n y y n y y n n n n n n y y y y

最佳答案

这应该有效:

for col in df.columns():
df.loc[df[col] == 'n', col] = 0
df.loc[df[col] == 'y', col] = 1
df.loc[df[col] == '?', col] = 1

关于python - 如何更改数据框 Python 中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45070896/

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