gpt4 book ai didi

python - Pandas - 如何根据数据类型堆叠列?

转载 作者:行者123 更新时间:2023-11-28 20:00:33 26 4
gpt4 key购买 nike

如果我有一个只有两种数据类型的数据框,如下所示:

d = {'col1': [1, 2], 'col2': ['jack', 'bill'], 'col3': [4, 5], 'col4': ['megan', 'sarah']}
df = pd.DataFrame(data=d)
print(df)


col1 col2 col3 col4
0 1 jack 4 megan
1 2 bill 5 sarah


print(df.dtypes)

col1 int64
col2 object
col3 int64
col4 object

有没有办法只根据数据类型来堆叠这些列?最终结果将是:

   col1  col2
0 1 jack
1 2 bill
2 4 megan
3 5 sarah

最终的列名不必保持不变。

最佳答案

这适用于您的示例数据,不确定它是否适用于一般数据

(df.groupby(df.dtypes, axis=1)
.apply(lambda x: (x.stack().reset_index(drop=True)))
)

输出

int64   object
0 1 jack
1 4 megan
2 2 bill
3 5 sarah

关于python - Pandas - 如何根据数据类型堆叠列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57311882/

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