Python 使用Pandas动态创建数据帧

Python 使用Pandas动态创建数据帧,python,pandas,csv,dictionary,pandas-groupby,Python,Pandas,Csv,Dictionary,Pandas Groupby,我有一个巨大的数据集,我想根据第一列的字符串值将其拆分为几个较小的数据集 到现在为止,我已经删除了我不想在最终数据帧中使用的所有信息,并使用数据帧字典动态创建,但没有效果,并创建了拆分 对于数据帧字典,我尝试了: 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)):

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

到现在为止,我已经删除了我不想在最终数据帧中使用的所有信息,并使用数据帧字典动态创建,但没有效果,并创建了拆分

对于数据帧字典,我尝试了:

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,每个文件都按照创建顺序命名。我有几个错误,首先它在创建字典时表示Key error:-1,并且只创建一个空字典,当切片不返回任何错误但也不向字典写入任何内容时。我还认为我可能错误地指出了我想在字典中更改哪些行和值

提前感谢一个对不起我的英语,不是母语,也是一个完整的n00b

我想根据字符串值分成几个更小的 第一列的第一行

这比你想象的要容易。只需在第一列中使用
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)

基于第一列的字符串值:在哪里按代码中的第一列进行过滤?另外,永远不要(即使在一个例子中)使用内置的变量名,比如
dict
。我想我是在过滤第二个块的3行。对于类似900个实例,行具有相同的值。我想复制数据帧中的行,直到值不匹配为止。很抱歉,我不知道。我只是想说清楚,你想要一个字典
d
,其中键是第一列中唯一的字符串,值是为相应字符串过滤的数据帧?我想更像是一个数据帧字典(根据我在另一篇文章中读到的建议)用于动态创建数据帧。我愿意接受建议。我想解决的问题是将这个大的CSV拆分成更小的CSV,每个较小的CSV包含与第一列中重复键相关的数据。好的,字典是可选的,实际上不需要,请参阅我的解决方案。哇,两行?它成功了,我真的印象深刻。要学的东西太多了。谢谢大家!@AaronGonzález,没问题,如果这有帮助的话,别忘了回答(在左边打勾)。