import pandas as pd
raw_data = {'FirstName': ["John", "Jill", "Jack", "John", "Jill", "Jack",],
'LastName': ["Blue", "Green", "Yellow","Blue", "Green", "Yellow"],
'Building': ["Building1", "Building1", "Building2","Building1", "Building1", "Building2"],
'Month': ["November", "November", "November", "December","December", "December"],
'Sales': [100, 150, 275, 200, 150, 150]}
frame = pd.DataFrame(raw_data, columns =raw_data.keys())
df = frame.pivot(
index=["FirstName", "LastName", "Building"],
columns="Month",
values="Sales",
)
df
我在這里有一些簡單的代碼可以生成一個多級索引資料框,如下所示:

但是,我想知道是否可以合并,只是視覺上在一列中的行,如下所示:

所以你可以在這里看到,而不是“杰克”出現在 2 行中,現在只有 1 個合并單元格。索引會自動執行類似的操作,但如果我洗掉索引我想模仿這個功能,這可能嗎?
uj5u.com熱心網友回復:
嘗試:
df = frame.pivot(
index=["FirstName", "LastName", "Building"],
columns="Month",
values="Sales",
).rename_axis(columns=None).reset_index()
輸出:
>>> df
FirstName LastName Building December November
0 Jack Yellow Building2 150 275
1 Jill Green Building1 150 150
2 John Blue Building1 200 100
更新
假設以下資料框:
>>> df
FirstName LastName Building December November
0 Jack Yellow Building2 150 275
1 Jack Yellow Building1 125 175
2 John Blue Building 200 100
你可以這樣做:
df.loc[df['FirstName'].eq(df['FirstName'].shift()), 'FirstName'] = ''
print(df)
# Output
FirstName LastName Building December November
0 Jack Yellow Building2 150 275
1 Yellow Building1 125 175
2 John Blue Building 200 100
我檢查了當前行的名字是否與前一個相同。如果是,我將名字替換為''. 所以什么時候(index 1, Jack) == (index 0, Jack),我設定(index 1, Jack)為''
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/409867.html
標籤:
上一篇:使用資料和浮點資料型別創建列
