我有一个txt文件,我想用pandas读取它,
我写道:
#!/usr/bin/python
import pandas as pd
import numpy as np
TC=pd.read_csv('D885_Ch10_ZC.csv',error_bad_lines=False,encoding='gbk')
df=pd.DataFrame(TC,columns=['t[s]','digits[]','Ch10_zc[V]'])
print(df)
我发现数据被NaN取代,我不知道为什么。
出了什么问题?
@jezrael的回答。我删除了顶部的所有无用信息后,它工作。无论如何都可以在不编辑原始文件的情况下执行此操作吗?答案 0 :(得分:3)
我认为您需要sep
参数,因为默认值为sep=','
。
如果tab
:
names=['t[s]','digits[]','Ch10_zc[V]']
df=pd.read_csv('D885_Ch10_ZC.csv',
sep='\t',
error_bad_lines=False,
encoding='gbk',
names=names,
skiprows=1 )
如果有空格:
names=['t[s]','digits[]','Ch10_zc[V]']
df=pd.read_csv('D885_Ch10_ZC.csv',
sep='\s+',
encoding='gbk',
error_bad_lines=False,
names=names,
skiprows=1)
names=['t[s]','digits[]','Ch10_zc[V]']
df=pd.read_csv('D885_Ch10_ZC.csv',
delim_whitespace=True,
encoding='gbk',
error_bad_lines=False,
names=names,
skiprows=1)
如果有两个或更多的空格:
names=['t[s]','digits[]','Ch10_zc[V]']
df=pd.read_csv('D885_Ch10_ZC.csv',
sep=r'\s{2,}',
engine='python',
encoding='gbk',
names=names,
skiprows=1 )
编辑:
需要更改截至10
:
names=['t[s]','digits[]','Ch10_zc[V]']
df=pd.read_csv(StringIO(temp),
delim_whitespace=True,
encoding='gbk',
names=names,
skiprows=10)