【问题标题】:Split the same column of data into multiple columns将同一列数据拆分为多列
【发布时间】:2019-08-01 22:37:05
【问题描述】:

我有一个 csv 数据,但数据集中在第一列。我想将同一列拆分为多列,并将数据保存在新的 csv 中。 []是一个excel单元格

例如,现在我的数据是:

[0.0     0.00     0.000  0.00000]   [ ] [ ]
[216.6   -81.88   85.236 12.00000]  [ ] [ ]
[214.4   -77.18   80.538  6.00000]  [ ] [ ]

我要拆分:

[0.0]    [0.00]    [0.000]  [0.00000]
[216.6]  [-81.88]  [85.236] [12.00000]
[214.4]  [-77.18]  [80.538] [6.00000]

现在我的新数据将在第一列和第二列之间有一个空列。我尝试使用此代码,但数据将是:

[0.0]    [0.00]   [0.000]   [0.00000]
[   ]    [    ]   [     ]   [       ]
[216.6]  [-81.88] [85.236]  [12.00000]
[     ]  [    ]   [      ]  [        ]
[214.4]  [-77.18] [80.538]  [6.00000]
[     ]  [    ]   [      ]  [       ]

我有这个小代码:

import csv
l = []
with open('F:\csv\shortcircuit0707','rt') as f: 
    cr = csv.reader(f, delimiter=" ", skipinitialspace=True)
    for column in cr:
        l.append(column) 
with open('F:\csv\shortcircuit0707_1','wt') as f2:
    cw = csv.writer(f2)
    for item in l:
        cw.writerow(item)

    cw.writerows(l) 

提前致谢!

【问题讨论】:

  • 我建议使用 pandas 来完成这类工作。 read_csv 函数将允许您指定您选择的分隔符(分隔符)。

标签: python csv


【解决方案1】:

您的数据似乎不完全位于 CSV(C 表示 comma)文件中,但字段由空格(或制表符)分隔。

您可以尝试将delimiter=" ", skipinitialspace=True(取决于您的实际分隔符)参数添加到csv.reader。见the document of the csv module。

工作示例:

r = csv.reader(f, delimiter=" ", skipinitialspace=True)

【讨论】:

  • 谢谢!我的数据可以拆分。但我还有一个问题。现在我的新数据将在第一列和第二列之间有一个空列。
【解决方案2】:

我建议您使用 pandas 而不是 CSV 库 在终端中通过此命令安装它(“pip install pandas”) 并在代码中使用它

import pandas as pd
my_csv=pd.read_csv("M:\csv\shortcircuit0707.csv",delimiter="\t")
my_csv.to_csv("M:\csv\shortcircuit0707_1.csv)

注意分隔符可以是“\t”或“;”根据您的 CSV_file 拆分数据

参见文档https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_csv.html

【讨论】:

    猜你喜欢
    • 2022-06-15
    • 1970-01-01
    • 2017-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多