是否有办法删除标题和分割列与熊猫read_csv?



[edit: working code in the end]

我有一个CSV文件,有许多行,但只有一列。我想把行的值分成列。

我试过了

import pandas as pd

df = pd.read_csv("TEST1.csv")
final = [v.split(";") for v in df]
print(final)

然而,它没有工作。我的CSV文件没有标题,但代码将第一行作为标题读取。我不知道为什么,但是代码只返回带有分割的标题,而忽略了数据的其余部分。

对此,我也尝试过

import pandas as pd
df = pd.read_csv("TEST1.csv").shift(periods=1)
final = [v.split(";") for v in df]
print(final)

返回同样的错误;和

import pandas as pd
df = pd.read_csv("TEST1.csv",header=None) 
final = [v.split(";") for v in df]
print(final)

返回
AttributeError: 'int' object has no attribute 'split'

我认为它这样做是因为当header=None或header=0时,它显示为0;由于某些原因,final = [v.split(";") for v in df]只读取头。

也,我试着插入一个新的标题:

import pandas as pd
df = pd.read_csv("TEST1.csv")
final = [v.split(";") for v in df]
headerList = ['Time','Type','Value','Size']
pd.DataFrame(final).to_csv("TEST2.csv",header=headerList)

它确实部分地起作用了。有一个新的头,但在csv文件中唯一的行是旧的头(这是数据的一部分);其他数据都没有传输到TEST2.csv文件中。

你有什么办法可以说明这个问题,这样我就可以拆分我所有的数据了吗?

许多谢谢。

编辑:感谢@1extralime,下面是工作代码:

import pandas as pd
df = pd.read_csv("TEST1.csv",sep=';')
df.columns = ['Time','Type','Value','Size']
df.to_csv("TEST2.csv")

尝试:

import pandas as pd
df = pd.read_csv('TEST1.csv', sep=';')
df.columns = ['Time', 'Type', 'Value', 'Size']

最新更新