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)