当前位置: 首页 > 知识库问答 >
问题:

如何根据csv标题(列)将数据拆分为两个或多个csv文件

耿建弼
2023-03-14

嘿,伙计们,我有一个程序,它读取csv文件,随机生成数据并将其转储到另一个csv文件中...现在我有一个csv文件,其中有100列,其中30列属于其他一些数据,但在最后生成时,我想通过附加一些对csv文件通用的公共列将这些数据分割成两个不同的csv文件。这是csv示例数据:

A1  A2  A3  A4  B1  B2  B3  C1  C2  C3
1   1   1   1   2   2   2   3   3   3
1   1   1   1   2   2   2   3   3   3
1   1   1   1   2   2   2   3   3   3

在这种情况下,两个文件都有一个共同点,因此输出数据应该如下所示:

A1  A2  A3  A4  B1  B2  B3
1   1   1   1   2   2   2
1   1   1   1   2   2   2
1   1   1   1   2   2   2


A1  A2  A3  A4  C1  C2  C3
1   1   1   1   3    3   3
1   1   1   1   3    3   3
1   1   1   1   3    3   3

为了得到一个带有所有条件的csv文件,我写了一个代码,这是它的小提琴链接:https://pyfiddle.io/fiddle/6c547de1-eca3-4e86-bf85-bfa9eba6e653/?m=Uploaded文件

这是复杂的理解所以在简单的:我正在读一个csv文件:

df=pd.read_csv("somefile.csv")

在这里执行所有计算操作,并在数据生成时添加另外三列srid,年,月,所以年和月,最后添加srid...final_Array.append(值)#"final_Array"包含所有列的数据。

data = pd.DataFrame(final_Array) to dump it to the csv file .....

但我不知道如何将这些数据值分割成两个文件,所有的操作都是将所有的数据分割成一个文件,有没有办法将写入csv文件之前已经生成的数据进行分割。。。谢谢你的帮助谢谢

共有1个答案

费凯康
2023-03-14

您可以使用startswithwith~运算符放弃列,

A_C = df1[df1.columns[~df1.columns.str.startswith('B')]]

    A1  A2  A3  A4  C1  C2  C3
0   1   1   1   1   3   3   3
1   1   1   1   1   3   3   3
2   1   1   1   1   3   3   3


A_B = df1[df1.columns[~df1.columns.str.startswith('C')]]


    A1  A2  A3  A4  B1  B2  B3
0   1   1   1   1   2   2   2
1   1   1   1   1   2   2   2
2   1   1   1   1   2   2   2

如果您想直接将数据帧写入csv,请尝试

df1[df1.columns[~df1.columns.str.startswith('C')]].to_csv('A_B.csv', index = False)
 类似资料:
  • 正在尝试从csv文件中读取数据,将每行拆分为各自的列。 但是,当某个列本身带有逗号时,我的正则表达式就失败了。 例如:a, b, c,"d, e, g,", f 我想要的结果是: 也就是5列。 下面是用逗号分隔字符串的正则表达式am ,(?=(?:“[^”]?(?:[^”])*)),(?=[^”](?:,),$) 但是它对少数字符串失败,而对其他字符串有效。 我想要的是,当我使用pyspark将c

  • 问题内容: 我在python中有一个约5000行的csv文件,我想将其拆分为五个文件。 我为此写了一个代码,但是没有用 上面的代码创建了许多内容为空的文件。 如何将一个文件分成五个csv文件? 问题答案: 我建议你不要发明轮子。有现有的解决方案。来源在这里 像这样使用它:

  • 问题内容: 我有250MB以上的巨大的CSV文件要上传 文件格式为,数据可能看起来像 我想基于划分文件,因此输出应为n个文件,其中 输出量 和 和 我该如何有效地做到这一点? 问题答案: 如果文件已经按排序,则可以执行以下操作:

  • 我有一个整数列表,我想使用Java8流返回这个列表中的整数子列表,其中我的子列表在遇到一个负整数之前包含了原始列表中的所有正整数 例如,假设我的列表中有元素 然后我应该返回包含 我尝试了以下方法,但它不起作用,你的方向

  • 我正在使用Ubuntu,希望将一个包含图像的文件夹(30k图像)拆分为不同的文件夹。但是,我想对它们进行排序(而不仅仅是拆分成更小的子文件夹)。我有一个文件,其中包含图像的文件夹目标信息。该文件的结构如下: 123.jpg,1 124.jpg,2 125.jpg,3 这应该解释为:image 123.jpg到文件夹1,image 124.jpg到文件夹2,image 125.jpg到文件夹3。 在

  • 问题内容: 我有一个带有多个列以及一个日期列的数据框。日期格式为15年12月31日,我将其设置为日期时间对象。 我将datetime列设置为索引,并希望对数据框的每个月执行回归计算。 我相信实现此目的的方法是将数据框基于月份拆分为多个数据框,存储到数据框列表中,然后对列表中的每个数据框执行回归。 我使用过groupby可以按月成功拆分数据框,但是不确定如何正确地将groupby对象中的每个组转换为