从numpy数组中的字符串自动创建新数据帧的名称

2024-09-28 20:38:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下数据帧

      col1          col2          col3
0     str9          47            55
1     str8          43            51
2     str9          46            52
3     str2          42            56

以及以下由df.col1.unique()生成的字符串数组

strings = ['str9', 'str8', 'str9', 'str2']

我想创建新的dataframe来管理我正在处理的数据量,其中每个新的dataframe在df[df.col1 == strings[0]]df[df.col1 == strings[1]]中的所有值中表示strings

我想根据字符串中的值来命名它们,所以

df_str9 = df[df.col1 == strings[0]]

我知道我可以遍历字符串来访问字符串中的每个值,但是如何创建dataframe,使其具有所列的名称要求

比如:

data_file = pd.DataFrame(data = ([['str9', 47, 55], ['str8',  43, 51], ['str9', 46, 52] , ['str2', 42, 56]] ), columns = (['col1', 'col2', 'col3']))
for string in strings:
    df_string = df[df.col1 == string]

Tags: 数据字符串dataframedfdatastring数组col2
1条回答
网友
1楼 · 发布于 2024-09-28 20:38:01

您可能需要locals()

data_file = pd.DataFrame(data = ([['str9', 47, 55], ['str8',  43, 51], ['str9', 46, 52] , ['str2', 42, 56]] ), columns = (['col1', 'col2', 'col3']))

variables = locals()
for i in data_file['col1'].unique():
    variables["df_{0}".format(i)] = data_file.loc[data_file.col1 == i,]

print(df_str9)

print(df_str9)
   col1  col2  col3
0  str9    47    55
2  str9    46    52

相关问题 更多 >