簡體   English   中英

如何使用 Pandas 在數據框中添加索引和單位引用?

[英]How to add index and units reference in a dataframe with pandas?

我有一個數據框df ,它包含很多不必要的列,還有一個名為dict ,其中包含所需的列作為鍵,單位作為每個鍵內的項目: dict = {'time': 'date', 'place': 'London'}

我需要一個新的數據框( final_df )僅包括在我的鑰匙列dict ,並且包括作為第一行(指數)的關鍵dict ,並為第二排的每個鍵內的項目dict (索引單位)。

當前df示例

在此處輸入圖片說明

所需的final_df數據幀

在此處輸入圖片說明

我試過:

    dict = {'time': 'date', 'place': 'London'}
    keys = []
    for key in dict:
        for col in df.columns:
            if col == key:
                keys.append(col)
    final_df = df[keys]

它有效,但我不知道如何在第二行中包含單位。 我怎樣才能將它添加到我的final_df 關於如何做到這一點的任何其他建議?

這是您想要的示例:

生成一個測試示例(你應該總是發布一個可測試的片段)以獲得更快+更好的答案):

np.random.seed(0)
df = pd.DataFrame(np.random.randint(0,100,(5,4)),columns=list('ABCD'))
print(df)

    A   B   C   D
0  44  47  64  67
1  67   9  83  21
2  36  87  70  88
3  88  12  58  65
4  39  87  46  88

解決方案:

  1. 通過僅過濾字典鍵中存在的列來創建數據框。
  2. 從字典中的鍵和值創建一個 Multiindex並分配給數據框並分配回列。

d= {'A': 'Col1', 'D': 'Col2'} #reference dictionary
final = df.loc[:,d.keys()]
final.columns = pd.MultiIndex.from_arrays((d.keys(),d.values()))
print(final)

     A    D
  Col1 Col2
0   44   67
1   67   21
2   36   88
3   88   65
4   39   88

注意:請不要將字典命名為dict因為它會覆蓋默認的字典功能。

暫無
暫無

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

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