gpt4 book ai didi

Python pandas 等效于替换

转载 作者:IT老高 更新时间:2023-10-28 20:39:38 26 4
gpt4 key购买 nike

在 R 中,有一个相当有用的 replace 函数。本质上,它在数据框的给定列中进行有条件的重新分配。它可以这样使用:replace(df$column, df$column==1,'Type 1');

在 pandas 中实现相同目标的好方法是什么?

我应该将 lambda 与 apply 一起使用吗? (如果是这样,我如何获得对给定列的引用,而不是整行)。

我应该在 data_frame.values 上使用 np.where 吗?似乎我在这里遗漏了一个非常明显的东西。

欢迎提出任何建议。

最佳答案

pandas 也有一个 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

关于Python pandas 等效于替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12152716/

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