【发布时间】:2019-07-19 11:44:19
【问题描述】:
我正在尝试使用read_csv 将逗号分隔的文本文件读入 Python。但是,Python 正在获取标题并将其向右移动一个。
列数少于我实际拥有的列数的数据文件示例:(包含更多数据的示例文件:https://www.dropbox.com/s/5glujwqux6d0msh/test.txt?dl=0)
DAY,TIME,GENVEG,LATI,LONGI,AREA,CHEM
226, 1200, 2, -0.5548999786D+01, 0.3167600060D+02, 0.1000000000D+07, NaN
226, 1115, 2, -0.1823500061D+02, 0.3668500137D+02, 0.1000000000D+07, NaN
如果我尝试以下操作(infile_fire 是上面的 txt 文件):
df_fires = pd.read_csv(infile_fire,sep="\,",skipinitialspace=True,engine='python')
我在下面得到这个。如您所见,DAY 实际上高于TIME 列。
(请注意,AREA 列中的值来自我在较大数据集中的数据,这些数据未在上面的示例子集中显示)
我也尝试了df_fires = pd.read_csv(infile_fire).reset_index(),虽然它确实创建了一个新索引(正如我所希望的那样),但它也将226 列移到上面并将其命名为index 而不是DAY这应该。
我也尝试了以下方法,但仍然得到相同的结果(移动标题)
df = pd.read_csv(infile_fire)
df = pd.read_csv(infile_fire,index_col=None)
df = pd.read_csv(infile_fire,index_col=0)
我该如何解决这个问题?我只想读取文本文件并让 Python 设置一个新索引并保持标题不变。
【问题讨论】:
-
您的数据文件有 6 列,但您的图片有 7 列。
-
那是因为样本的数据比我的实际数据集少,实际数据集有 40 多列。我只是在上面放了一个示例供参考。
-
无法按原样复制。如果我使用
read_csv(),索引列包含行号,就像您针对您提供的 csv 数据所做的那样。 -
我的意思是使示例保持一致,以便清楚您想要什么。
-
@coldspeed 已编辑
标签: python pandas csv indexing