Kor*_*ose 6 python dataframe pandas
我有一个包含一些数据的数据框,我想要转换,以便一列的值定义新列.
>>> import pandas as pd
>>> df = pd.DataFrame([['a','a','b','b'],[6,7,8,9]]).T
>>> df
A B
0 a 6
1 a 7
2 b 8
3 b 9
Run Code Online (Sandbox Code Playgroud)
列的值A应为新数据帧的列名.转换的结果应如下所示:
a b
0 6 8
1 7 9
Run Code Online (Sandbox Code Playgroud)
到目前为止我想出的并没有完全发挥作用:
>>> pd.DataFrame({ k : df.loc[df['A'] == k, 'B'] for k in df['A'].unique() })
a b
0 6 NaN
1 7 NaN
2 NaN 8
3 NaN 9
Run Code Online (Sandbox Code Playgroud)
除了这是不正确的,我想无论如何可能还有更有效的方法.我真的很难理解如何处理大熊猫的事情.
你快到了,但你需要.values作为数组列表,然后提供列名。
pd.DataFrame(pd.DataFrame({ k : df.loc[df['A'] == k, 'B'].values for k in df['A'].unique() }), columns=df['A'].unique())
Run Code Online (Sandbox Code Playgroud)
输出:
a b
0 6 8
1 7 9
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
419 次 |
| 最近记录: |