【发布时间】:2019-06-28 02:48:17
【问题描述】:
我有一个庞大的数据集,我想根据第一列的字符串值将其拆分为几个较小的数据集。
到目前为止,我已经删除了最终数据帧中不需要的所有信息,并使用数据帧字典动态创建,但无济于事,并创建了拆分。
对于数据框的字典,我试过了:
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 while creating the dictionary 并且只创建一个空的,当切片不返回任何错误但也不向字典写入任何内容时。我还认为我可能会错误地指出要在字典中更改哪些行和值。
提前感谢我的英语,不是母语,也是一个完整的 n00b。
【问题讨论】:
-
based on the string values of the first column: 你在哪里按代码中的第一列过滤?此外,从不(即使在示例中)使用诸如dict之类的内置变量作为变量名。 -
我想我在第二块的第 3 行进行过滤。对于 900 个实例,这些行具有相同的值。我想复制数据框中的行,直到值不匹配。对不起 dict 的事情,不知道。
-
为了清楚起见,您想要一个字典
d,其中键是第一列中的 唯一字符串,值是针对相应字符串过滤的数据帧? -
我的想法更像是一个数据帧字典(遵循我在另一篇文章中阅读的建议),用于动态创建数据帧。我愿意接受建议。我要解决的问题是将这个大的 CSV 拆分成更小的一个,每个更小的一个包含与第一列中的重复键关联的数据。
-
好的,字典是可选的,实际上并不是必需的,请参阅我的解决方案。
标签: python pandas csv dictionary pandas-groupby