在R中,有一个相当有用的replace
功能。
本质上,它在数据帧的给定列中进行有条件的重新分配。
它可以这样使用:replace(df$column, df$column==1,'Type 1');
在 pandas 中实现相同目标的好方法是什么?
我应该使用 lambda 吗apply
? (如果是这样,我如何获得对给定列的引用,而不是整行)。
我应该使用np.where
on data_frame.values
?
看来我在这里遗漏了一件非常明显的事情。
任何建议表示赞赏。
pandas
has a replace
方法也:
In [25]: df = DataFrame({1: [2,3,4], 2: [3,4,5]})
In [26]: df
Out[26]:
1 2
0 2 3
1 3 4
2 4 5
In [27]: df[2]
Out[27]:
0 3
1 4
2 5
Name: 2
In [28]: df[2].replace(4, 17)
Out[28]:
0 3
1 17
2 5
Name: 2
In [29]: df[2].replace(4, 17, inplace=True)
Out[29]:
0 3
1 17
2 5
Name: 2
In [30]: df
Out[30]:
1 2
0 2 3
1 3 17
2 4 5
或者你可以使用numpy
-风格高级索引:
In [47]: df[1]
Out[47]:
0 2
1 3
2 4
Name: 1
In [48]: df[1] == 4
Out[48]:
0 False
1 False
2 True
Name: 1
In [49]: df[1][df[1] == 4]
Out[49]:
2 4
Name: 1
In [50]: df[1][df[1] == 4] = 19
In [51]: df
Out[51]:
1 2
0 2 3
1 3 17
2 19 5
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)