簡體   English   中英

pivot python dataframe 行到列

[英]pivot python dataframe rows to columns

我有一個像這樣的 python dataframe

       date      col1       col2    val
0   2019-01-01    A         hello   12
1   2019-01-01    A           hi    10
2   2019-01-02    B         hello   5
3   2019-01-02    B           hi    6

我想把它轉換成

       date      col1       hello  hi
0   2019-01-01    A           12    10
1   2019-01-02    B            5    6

使用 pandas pivot_table()方法。 你可以在這里閱讀更多關於它的信息。

這些values屬於val列,我們將保留的索引是datecol1 ,我們想從col2 col 中“創建”列。

df = pd.pivot_table(df, values='val', index=['date', 'col1'],columns=['col2'], aggfunc=np.sum, fill_value=0)

請注意,可能某些值是NaN ,上面的 function 將根據fill_value參數自動將它們設置為0

輸入:

import pandas as pd
import numpy as np

a = ['2019-01-01', 'A', 'hello', 12]
b = ['2019-01-01', 'A', 'hi', 10]
c = ['2019-01-02', 'B', 'hello', 5]
d = ['2019-01-02', 'B', 'hi', 6]
df = pd.DataFrame([a, b, c, d], columns=['date', 'col1', 'col2', 'val'])

df = pd.pivot_table(df, values='val', index=['date', 'col1'],columns=['col2'], aggfunc=np.sum, fill_value=0)

print(df)

Output:

col2             hello  hi
date       col1           
2019-01-01 A        12  10
2019-01-02 B         5   6

暫無
暫無

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

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