具有如下資料框:
data_1 = {'Day': ['Mon','Mon', 'Mon','Tue','Tue'],
'product': ['A','B','C','D','E']}
# Create DataFrame
df1 = pd.DataFrame(data_1)
df1
data_2 = {'Day': ['Mon','Mon', 'Mon','Mon','Mon', 'Mon','Mon','Mon', 'Mon', 'Mon','Tue','Tue','Wed','Wed'],
'product_1': ['A','A','A','B','B','B','C','C','C','D','D','E','A','B'],
'product_2': ['A','B','C','A','B','C','A','B','C','E','B','D','B','A'],
'price':[10,20,30,40,55,50,60,70,80,90,12,13,14,15]}
# Create DataFrame
df_2 = pd.DataFrame(data_2)
df_2
我試圖使用這兩個資料框創建資料透視表。我想創建如下資料透視表。我們可以根據條件創建資料透視表嗎?
就像 Day 是星期一一樣:
A B C
A 10 20 30
B 40 55 50
C 60 70 80
我不確定,如何做到這一點?你能幫助我嗎?
uj5u.com熱心網友回復:
據我了解您的問題,df1用于選擇相關產品A,B和C。
你可以像這樣得到它們:
day = "Mon"
products = df1.groupby("Day").product.apply(set)[day]
然后過濾相關行并使用 pivot 生成您想要的輸出:
(df2[(df2.Day == day) & (df2.product_1.isin(products)) & (df2.product_2.isin(products))]
.pivot(index='product_1', columns='product_2', values=['price']))
product_2 A B C
product_1
A 10 20 30
B 40 55 50
C 60 70 80
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/515940.html
標籤:Python熊猫
上一篇:使用正則運算式提取日期和時間,然后將其轉換為日期時間
下一篇:將名稱更改為帶前綴的數字
