【发布时间】:2017-12-17 15:52:57
【问题描述】:
我已经搜索了过去 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
【问题讨论】:
-
您要更改多少列?你能显示 df.head() 吗?
-
这个数据集中有 17 列,但还有一个有 56 列。
标签: python pandas dataframe replace