[英]Pandas series index as column name of dataframe
任務描述
我有一個熊貓系列如下:
rank loc
0.0 AU 2
US 1
1.0 UK 1
AU 3
US 1
我希望制作一個以 rank 作為列名和 loc 作為索引的 DataFrame。 所需的 df 如下所示:
0.0 1.0
AU 2 3
UK 1
US 1 1
我對沒有值的行中的 NaN 或 0 感到滿意。 任何幫助都會很棒!
假設這個系列被稱為 S。
首先將其展平並轉換為數據框並重命名以便於訪問
df = pd.DataFrame(pd.DataFrame(S).to_records())
df.columns = ['rank', 'loc', 'counts']
現在按loc分組,並遍歷每個組並創建一個字典,其中“鍵”來自排名,“值”來自計數
對於每個組,您將擁有這個字典,您可以將其附加到temp_list ,而temp_indices跟蹤索引(在這種情況下是loc的值)
最后,我們可以從字典列表( temp_list )中創建一個結果數據幀,索引來自temp_indices
temp_list = list()
temp_indices = list()
for _name, _val in df.groupby('loc'):
temp_dict = dict()
for _, row in _val.iterrows():
temp_dict.update({row['rank']: row['counts']})
temp_indices.append(_name)
temp_list.append(temp_dict)
result = pd.DataFrame(temp_list, index=temp_indices)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.