我有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
我正在使用pandas read_csv
来读取文件并将它们放入列中。
这是我的代码:
import pandas as pd
import os
path='~/Desktop/pulse.csv'
path=os.path.expanduser(path)
my_data=pd.read_csv(path, index_col=False, header=None, quoting = 3, delimiter=',')
print my_data
问题是第一列和最后一列有“值之前和之后。
此外,我无法摆脱索引。
可能会犯一些愚蠢的错误,但我提前感谢你的帮助
答案 0 :(得分:2)
最终解决方案 - 使用replace
转换为int
并从列名中删除"
使用strip
:
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
表示强制不读取第一列索引,但数据帧总是需要一些索引,因此添加默认值 - 0,1,2...
。所以这里可以省略。
header=None
,因为它强制不要将第一行(csv的标题)读取到DataFrame
的列。然后第一行数据也是标题,数值转换为字符串。
delimiter=','
也应该被移除,因为它与sep=','
相同,这是默认参数。
答案 1 :(得分:0)
@jezrael是对的 - 熊猫数据框总会添加索引。这是必要的。
尝试使用df[0] = df[0].str.strip()
替换为最后一列的零。
在您执行此操作之前,请将您的csv转换为数据框 - pd.DataFrame.from_csv(path)