gpt4 book ai didi

Python Pandas Dataframe 复制并重新排序列

转载 作者:行者123 更新时间:2023-11-30 22:32:23 25 4
gpt4 key购买 nike

我有一个(可能)非常简单的问题。我有以下数据框:

c1 | c2 | c3

一个|乙| 4
乙|一个 | 1

现在,column3 仅依赖于column1,column2 与column1 具有相同的项目,但顺序不同。我想做的就是添加一个与column3具有相同值但按column2顺序的column4。所以结果看起来像这样:

c1| c2| c3|c4

a | b | 4 | 1
b | a | 1 | 4

你有什么想法吗?

提前致谢!

最佳答案

如果值是唯一的:

df['c4'] = df.set_index('c1').loc[df['c2'], 'c3'].values
print (df)
c1 c2 c3 c4
0 a b 4 1
1 b a 1 4

如果没有,那就有点复杂了,因为需要 cumcount用于创建唯一的 MultiIndex 然后 reindex :

print (df)
c1 c2 c3
0 a b 5
1 a a 4
2 b a 1

a = df.groupby('c1').cumcount()
idx = pd.MultiIndex.from_arrays([df.groupby('c2').cumcount(), df['c2']])
print (idx)
MultiIndex(levels=[[0, 1], ['a', 'b']],
labels=[[0, 0, 1], [1, 0, 0]],
names=[None, 'c2'])

df['c4'] = df.set_index([a,'c1']).reindex(idx)['c3'].values
print (df)
c1 c2 c3 c4
0 a b 5 1
1 a a 4 5
2 b a 1 4

关于Python Pandas Dataframe 复制并重新排序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45481839/

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