gpt4 book ai didi

python - 将 pandas dataframe 转换为新格式的有效方法

转载 作者:行者123 更新时间:2023-11-28 17:29:25 26 4
gpt4 key购买 nike

我目前正在使用现有数据框制作新数据框。

假设我们的数据框如下所示

tt2 = pd.DataFrame(columns=['test','class'])

test = [1,2,3,4,1,2,3,4,4]
test_class = ['a','b','c','d','b','c','a','d','a']

tt2['test'] = test
tt2['class'] = test_class


test class
0 1 a
1 2 b
2 3 c
3 4 d
4 1 b
5 2 c
6 3 a
7 4 d
8 4 a

然后,我想把这个结构改造成

test class1 class2 class3
1 a b
2 b c
3 c a
4 d d a

因此,我们根据唯一键值的最大元素数生成新列。这里“4”有 3 个类,所以我们创建 3 个新索引

然后像堆叠一样填充数字。

我尝试过使用 groupby 方法。但是仍然没有弄清楚如何正确转换。

最佳答案

这对你有用吗?

使用 groupby,使用 apply,然后使用系列字符串方法,使用 expand 设置:

tt2 = pd.DataFrame(columns=['test','class'])

test = [1,2,3,4,1,2,3,4,4]
test_class = ['a','b','c','d','b','c','a','d','a']

tt2['test'] = test
tt2['class'] = test_class

result_df. = tt2.groupby('test').apply(lambda x: "-".join(x['class'])).str.split('-', expand=True)
result_df.columns = ['class' + str(int(col)+1) for col in result_df.columns]
print result_df

给出

     class1 class2 class3
test
1 a b None
2 b c None
3 c a None
4 d d a

关于python - 将 pandas dataframe 转换为新格式的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35607254/

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