gpt4 book ai didi

python - pandas df 转换 : a better way than df. unstack().unstack()

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

尝试将 pandas DataFrames 从宽格式转换为长格式。

我尝试过 melt() ,使用wide_to_long() (简单的 melt()),但一直与我收到的语法和输出混淆。

我还阅读了 SO 和网络上有关此主题的许多帖子并尝试过 quite some proposed方法,但结果从来都不是我想要的。

This post帮助我发现了 unstack() - 我终于成功地使用它连续两次得到了我想要的结果:df.unstack().unstack( )

我确信这不是最好的方法,并且希望得到提示!这是我的例子:

import pandas as pd

# an example df (the real data makes more sense):
series_list = [
pd.Series(list("hello! hello!"), name='greeting'),
pd.Series(list("stackoverflow"), name='name'),
pd.Series(list("howsit going?"), name='question')
]

wide_df = pd.DataFrame(series_list)

创建这样的 df 总是会给我一个格式的 df:

          0  1  2  3  4  5  6  7  8  9  10 11 12
greeting h e l l o ! h e l l o !
name s t a c k o v e r f l o w
question h o w s i t g o i n g ?

但是,我希望 pd.Series()name= 属性成为列名称

对我有用的是提到的df.unstack().unstack():

   greeting name question
0 h s h
1 e t o
2 l a w
3 l c s
4 o k i
5 ! o t
6 v
7 h e g
8 e r o
9 l f i
10 l l n
11 o o g
12 ! w ?

但这确实很笨拙,必须有更好的方法!

谢谢,祝你有美好的一天:)

最佳答案

使用T

wide_df.T
Out[1108]:
greeting name question
0 h s h
1 e t o
2 l a w
3 l c s
4 o k i
5 ! o t
6 v
7 h e g
8 e r o
9 l f i
10 l l n
11 o o g
12 ! w ?

关于python - pandas df 转换 : a better way than df. unstack().unstack(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46413441/

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