【发布时间】:2021-07-14 01:53:44
【问题描述】:
我有一个 Dataframe df_main 包含以下列:
| ID | Category | Time | Status | XYZ |
|---|---|---|---|---|
| 1 | A | value | value | value |
| 2 | B | value | value | value |
| 3 | C | value | value | value |
| 4 | D | value | value | value |
| 5 | E | value | value | value |
使用以下代码,我根据表中的类别创建了新的数据框。我已经创建了一个 Dataframe 字典并以这种格式创建了数据框 df_A、df_B、df_C...
我已将该行存储在与类别名称等效的新数据框中。因此,df_A 将拥有来自df_main 的行,该行具有类别值“A”。
代码:
dict_of_df = {} # initialize empty dictionary
i=0
for index, row in df_main.iterrows():
if i<5:
newname = df_main['Category'].values[i]
dict_of_df["df_{}".format(newname)] = row
i=i+1
我想通过数据框名称打印数据框,而不是通过迭代字典。 应该是这样的:
print(df_A)
print(df_B)
print(df_C)
print(df_D)
print(df_E)
我怎样才能做到这一点? 不使用字典的解决方案也可以。只要我能够将特定类别的一行存储在特定于类别名称的新数据框中并使用数据框名称打印它,任何解决方案都可以。
如果需要更多详细信息,请告诉我。
编辑:
这个链接有点类似于我的用例: Using String Variable as variable name
我想具体到数据帧,因为我的最终目标是按名称打印数据帧。
该链接的答案中提到的方法特定于变量,并且需要使用 exec 数据帧方法的不同代码解决方案。
此代码背后的想法是将其包含在 Power BI 中。在 Power BI 中使用 python 脚本获取源接受数据帧作为表,为此,我必须在代码中声明或打印数据帧。
【问题讨论】:
-
这能回答你的问题吗? Using a string variable as a variable name
-
使用字典?
print(dict_of_df["df_A"])??? -
使用字典有什么问题?也可以缩短您的代码 - 尝试:
dfs = {f"df_{cat}" : grp for cat,grp in df.groupby('Category')} -
如果你不介意写
print(dict_of_df.df_A)之类的东西,这个答案对你来说有很多选择:stackoverflow.com/questions/3031219/… 恕我直言,我会使用最后一个答案,它提供了一个函数来转换python dict 到一个名为 PropertyTree 的辅助对象中。 -
@nidabdella 不,我认为它没有回答。
标签: python python-3.x pandas dataframe dictionary