簡體   English   中英

在 Pandas 中為每個唯一值創建一個 Dataframe

[英]Create One Dataframe per unique Values in Pandas

你好世界

我想從一列中為每個唯一值創建一個數據框。

下面是我的初始數據框。

Date     Name     Value
01/19     Jean        15
01/19     Jean        15
01/17     Bean        15
01/16     Bean        15
01/19     Jean        15

我找到了一些關於基於唯一值創建數據幀的答案,例如: 從一列中的唯一值創建 Pandas數據幀。

使用以下代碼,我將所有內容都包含在列表中。

dfa = [x for _, x in df.groupby('name')]
dfa[0]

output 
Date     Name     Value
01/19     Jean        15
01/19     Jean        15
01/19     Jean        15
Date     Name     Value
01/17     Bean        15
01/16     Bean        15    

但是,我想自動分配數據框的名稱而不是這樣做:

df_Jean= df[0]
df_Bean= df[1]

以下是預期的輸出

df_Jean
Date     Name     Value
01/19     Jean        15
01/19     Jean        15
01/19     Jean        15

這是可能的,但在 python 中不推薦

for i, g in df.groupby('name'):
    globals()['df_' + str(i)] =  g

或者:

for i, g in df.groupby('name'):
    globals()[f'df_{i}'] =  g

更好的是使用dict

d = dict(tuple(df.groupby("Name")))

print (d['Jean'])
print (d['Bean'])

你應該使用字典:

d = {k:v for k, v in df.groupby("Name")}

然后您可以簡單地將名稱作為鍵傳遞:

print (d["Jean"])

    Date  Name  Value
0  01/19  Jean     15
1  01/19  Jean     15
4  01/19  Jean     15

暫無
暫無

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

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