用熊猫动态创建数据框

时间:2019-02-04 11:08:17

标签: python pandas

我有一个庞大的数据集,我想根据第一列的字符串值将其分成几个较小的数据集。

现在,我已删除了最终数据框中不需要的所有信息,并使用数据帧字典进行了动态创建(无济于事)并创建了拆分。

对于数据框字典,我尝试过:

dict = {}
number_of_df= 0

for i in range(df.shape[0]):
    if df[i:] != df[i-1]:
        number_of_df += 1

for i in range(len(number_of_df)):
    d['t' + str(i)] = df.shift(i).add_suffix('_t' + str(i))

用于复制行的值,直到行中的第一个值与前面的值不同:

for key in dict:
    while df[i:] == df[i-1:]:
        df[key].append= df2.loc[df1.index[i]] = df1.iloc[i]

    df[key].to_csv('file'+str(key)+'.csv', index=False)

我希望它为每个文件创建几个CSV并以创建顺序命名。我有几个错误,首先出现“关键错误”:创建字典时仅-1,并且仅创建一个空字典,而切片时不返回错误但也不向字典写入任何内容。我还认为我可能要指出我想在字典中更改哪些行和值。

预先感谢我的英语,不是母语,还有完整的n00b。

1 个答案:

答案 0 :(得分:0)

  

我想根据字符串值拆分成几个较小的   第一列的内容。

这比您想象的要容易。只需在第一列中使用groupby,然后使用dict + tuple来构建字典。您可以通过索引df.columns选择第一列。

dct = dict(tuple(df.groupby(df.columns[0])))

如果仅 需要将每个数据帧导出到CSV文件,则不需要额外的词典费用。只需直接迭代groupby对象:

for key, df_slice in df.groupby(df.columns[0]):
    df_slice.to_csv(f'file_{key}.csv', index=False)