[英]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
列,我們將保留的索引是date
和col1
,我們想從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.