[英]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.