簡體   English   中英

將行重塑為pandas數據幀中的列

[英]Reshape rows to columns in pandas dataframe

在熊貓中如何從一個:

a = pd.DataFrame({'foo': ['m', 'm', 'm', 's', 's', 's'],
                    'bar': [1, 2, 3, 4, 5, 6]})
>>> a
   bar foo
0    1   m
1    2   m
2    3   m
3    4   s
4    5   s
5    6   s

到b:

b = pd.DataFrame({'m': [1, 2, 3],
                    's': [4, 5, 6]})
>>> b
   m  s
0  1  4
1  2  5
2  3  6

我在其他答案中嘗試過解決方案,例如這里這里,但似乎沒有人做我想要的。

基本上,我想用列交換行並刪除索引,但是怎么做呢?

a.set_index(
    [a.groupby('foo').cumcount(), 'foo']
).bar.unstack()

這是我的解決方案

a = pd.DataFrame({'foo': ['m', 'm', 'm', 's', 's', 's'],
                    'bar': [1, 2, 3, 4, 5, 6]})
a.pivot(columns='foo', values='bar').apply(lambda x: pd.Series(x.dropna().values))

foo    m    s
0    1.0  4.0
1    2.0  5.0
2    3.0  6.0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM