Python 如何防止选择第一行作为索引列

Python 如何防止选择第一行作为索引列,python,pandas,Python,Pandas,我在读取数据时遇到了一个问题,第一列被指定为索引列,即使我使用了index\u col=None或index\u col=None。类似问题发布为 使用制表符分隔格式将df写入csv 重读 正如我们所见,patient列分为spried&和roy和spried&成为索引列,即使我明确地写index\u col=None 我们如何正确地获取患者列的原样以及控制索引列是否存在 thx只需删除delim_whitespace=True,因为它在解决方案中使用了空格分隔符,而不是选项卡s,但此处仅使用文

我在读取数据时遇到了一个问题,第一列被指定为索引列,即使我使用了
index\u col=None
index\u col=None
。类似问题发布为

使用制表符分隔格式将df写入csv 重读 正如我们所见,
patient
列分为
spried&
roy
spried&
成为索引列,即使我明确地写
index\u col=None

我们如何正确地获取
患者
列的原样以及控制索引列是否存在


thx

只需删除
delim_whitespace=True
,因为它在解决方案中使用了空格分隔符,而不是
选项卡
s,但此处仅使用文件名为的
sep='\t'
参数:

df.to_csv('xgboost.txt', sep='\t', index=False)
read_df=pd.read_table(r'xgboost.txt', sep="\t") 
print (read_df)
        patient  obs  treatment   score
0  spried & roy    1          0  strong
1  spried & roy    2          1    weak
2  spried & roy    3          0  normal
3  spried & roy    1          1    weak
4  spried & roy    2          0  strong
另一个想法是写到文件的空格分隔符,因此
delim_whitespace=True
工作良好:

df.to_csv('xgboost.txt', sep=' ', index=False)

read_df=pd.read_table(r'xgboost.txt', delim_whitespace=True) 

实际上我需要这个部分(delim_whitespace=True),因为在我的真实数据中,这是正确读取列名的唯一方法!如果我删除它,我会出错,“[索引('patient','obs','treatment','score'],[dtype='object')]中没有一个在[列]中”,哦,我明白了。让我再挖一点。但是谢谢你的
delim_whitespace=True
part.@Alexander-可以用真实数据创建示例数据吗?更糟糕的情况是空格分隔符,csv中的数据和检查数据中没有
“spried&roy”10 strong
我解决了这个问题。我发现在真实数据中,列名中有空格,比如
“patient”
,所以我做了df.columns=df.columns.str.replace(“”,)问题解决了。感谢您的指导和快速帮助!您能用
pd.read\u csv
吗?
pd.read\u csv('xgboost.txt',sep=“\t”)
看起来效果不错。
read_df=pd.read_table(r'xgboost.txt', header=0,index_col=None, skiprows=0, skipfooter=0, sep="\t",delim_whitespace=True) 

read_df

         patient  obs  treatment   score
spried &     roy    1          0  strong
       &     roy    2          1    weak
       &     roy    3          0  normal
       &     roy    1          1    weak
       &     roy    2          0  strong
df.to_csv('xgboost.txt', sep='\t', index=False)
read_df=pd.read_table(r'xgboost.txt', sep="\t") 
print (read_df)
        patient  obs  treatment   score
0  spried & roy    1          0  strong
1  spried & roy    2          1    weak
2  spried & roy    3          0  normal
3  spried & roy    1          1    weak
4  spried & roy    2          0  strong
df.to_csv('xgboost.txt', sep=' ', index=False)

read_df=pd.read_table(r'xgboost.txt', delim_whitespace=True)