gpt4 book ai didi

python - 根据另一列更改 pandas 列

转载 作者:行者123 更新时间:2023-12-01 01:06:50 25 4
gpt4 key购买 nike

我有一个 pandas DataFrame,其中包含如下所示:

A         A_type
"Hello" String
15 Integer
"Hi" String
56.78 Float

我想创建第三列,如果 A 具有名为“String”的相应“A_type”元素,则报告与 A 相同的值,否则打印“空白”。该列如下所示:

B
"Hello"
"blank"
"Hi"
"blank"

我尝试做类似的事情:

df['B'] = df['A']
for j in df['A_type']:
for i in df['B']:
if j == "String":
i = i
else:
i = "blank"

是否有更有效的方法来解决此类问题,可以帮助我避免所有这些 for 循环?

提前非常感谢

最佳答案

使用Series.where或者 Series.mask具有反转条件,或 numpy.where :

df['B'] = df['A'].where(df['A_type'] == "String", 'blank')
#df['B'] = df['A'].mask(df['A_type'] != "String", 'blank')
#alternative
#df['B'] = np.where(df['A_type'] == "String", df['A'], 'blank')
print (df)
A A_type B
0 Hello String Hello
1 15 Integer blank
2 Hi String Hi
3 56.78 Float blank

关于python - 根据另一列更改 pandas 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55259255/

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