python pandas:尝试读取txt文件,但显示NaN

时间:2017-04-18 09:16:09

标签: python pandas dataframe

我有一个txt文件,我想用pandas读取它,

enter image description here

我写道:

#!/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取代,我不知道为什么。

enter image description here

出了什么问题?

@jezrael的回答。我删除了顶部的所有无用信息后,它工作。无论如何都可以在不编辑原始文件的情况下执行此操作吗?

1 个答案:

答案 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)