gpt4 book ai didi

python - 交换 PANDAS 数据框中的元素

转载 作者:太空宇宙 更新时间:2023-11-04 04:25:21 25 4
gpt4 key购买 nike

下面是一个表格:

    A NUMBER    B NUMBER
7042967611 9999574081
12320 9999574081
9999574081 9810256463
9999574081 9716551924
9716551924 9999574081
9999574081 8130945859

这最初是一个 excel 表,已转换为数据框。我希望交换一些元素,使 A 数字列只有 9999574081。因此输出应该是这样的:

    A NUMBER    B NUMBER
9999574081 7042967611
9999574081 12320
9999574081 9810256463
9999574081 9716551924
9999574081 9716551924
9999574081 8130945859

这是我用过的代码:

for i in list(df['A NUMBER']):
j=0
if i!= 9999574081:
temp = df['B NUMBER'][j]
df['B NUMBER'][j] = i
df['A NUMBER'][j] = temp
j+=1

但是,我没有得到想要的结果。请帮帮我。谢谢:)

最佳答案

使用DataFrame.loc对于仅交换匹配 bool 掩码的行,values避免对齐索引值是必要的:

m = df['A NUMBER'] != 9999574081

df.loc[m, ['A NUMBER','B NUMBER']] = df.loc[m, ['B NUMBER','A NUMBER']].values

另一种解决方案 numpy.where :

df['B NUMBER'] = np.where(df['A NUMBER'] != 9999574081, df['A NUMBER'], df['B NUMBER'])
df['A NUMBER'] = 9999574081

print (df)
A NUMBER B NUMBER
0 9999574081 7042967611
1 9999574081 12320
2 9999574081 9810256463
3 9999574081 9716551924
4 9999574081 9716551924
5 9999574081 8130945859

关于python - 交换 PANDAS 数据框中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53611917/

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