[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']