Pandas read_csv将不必要的“”添加到每个

2024-09-25 10:21:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个csv文件

(我在这里展示前三排)

HEIGHT,WEIGHT,AGE,GENDER,SMOKES,ALCOHOL,EXERCISE,TRT,PULSE1,PULSE2,YEAR
173,57,18,2,2,1,2,2,86,88,93
179,58,19,2,2,1,2,1,82,150,93

我使用pandasread_csv读取文件并将它们放入列中。在

这是我的代码:

^{pr2}$

问题是第一列和最后一列有“值之前和之后”。在

另外,我无法删除索引。在

这可能会犯一些愚蠢的错误,但我事先感谢你的帮助


Tags: 文件csv代码agegenderyearheightweight
2条回答

最终解决方案-使用^{}转换为ints,并使用^{}从列名称中删除{}:

df = pd.read_csv('pulse.csv', quoting=3)

df = df.replace('"','', regex=True).astype(int)
df.columns = df.columns.str.strip('"')
print (df.head())

   HEIGHT  WEIGHT  AGE  GENDER  SMOKES  ALCOHOL  EXERCISE  TRT  PULSE1  \
0     173      57   18       2       2        1         2    2      86   
1     179      58   19       2       2        1         2    1      82   
2     167      62   18       2       2        1         1    1      96   
3     195      84   18       1       2        1         1    2      71   
4     173      64   18       2       2        1         3    2      90   

   PULSE2  YEAR  
0      88    93  
1     150    93  
2     176    93  
3      73    93  
4      88    93  

index_col=False表示强制不读取第一列到索引,但dataframe总是需要一些索引,因此添加了默认值-0,1,2...。所以这里可以省略。在

header=None应该被删除,因为它强制不将第一行(csv的头)读取到DataFrame的列。然后,第一行数据也是标题,数值被转换成字符串。在

delimiter=','也应该删除,因为它与sep=','什么是默认参数相同。在

@jezrael是对的-pandas数据框总是会添加索引。这是必要的。在

尝试类似df[0] = df[0].str.strip()将0替换为最后一列。在

{cd2>转换成你的数据帧之前}

相关问题 更多 >