Python Pandas:尝试读取txt文件但显示NaN

3
我有一个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
请将您的实际输入和输出数据以文本形式发布,而不是作为图像。 没有人想从图像中键入所有这些内容。 - languitar
是的,谢谢您的友善提醒 :) - Yingqiang Gao
1个回答

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 )

编辑:

需要将skiprows更改为10

names=['t[s]','digits[]','Ch10_zc[V]']
df=pd.read_csv(StringIO(temp), 
               delim_whitespace=True,
               encoding='gbk', 
               names=names,
               skiprows=10)

谢谢,我删除了顶部所有无用的信息后,它可以正常工作了。 - Yingqiang Gao

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接