【发布时间】:2014-07-25 02:34:54
【问题描述】:
import pandas as pd
path1 = "/home/supertramp/Desktop/100&life_180_data.csv"
mydf = pd.read_csv(path1)
numcigar = {"Never":0 ,"1-5 Cigarettes/day" :1,"10-20 Cigarettes/day":4}
print mydf['Cigarettes']
mydf['CigarNum'] = mydf['Cigarettes'].apply(numcigar.get).astype(float)
print mydf['CigarNum']
mydf.to_csv('/home/supertramp/Desktop/powerRangers.csv')
csv 文件“100&life_180_data.csv”包含年龄、bmi、香烟、酒精等列。
No int64
Age int64
BMI float64
Alcohol object
Cigarettes object
dtype: object
香烟列包含“从不”、“1-5 根香烟/天”、“10-20 根香烟/天”。 我想为这些对象分配权重(从不,1-5 支香烟/天,....)
预期的输出是附加的新列 CigarNum,仅包含数字 0、1、2 CigarNum 与预期一样直到 8 行,然后在 CigarNum 列中显示 Nan 直到最后一行
0 Never
1 Never
2 1-5 Cigarettes/day
3 Never
4 Never
5 Never
6 Never
7 Never
8 Never
9 Never
10 Never
11 Never
12 10-20 Cigarettes/day
13 1-5 Cigarettes/day
14 Never
...
167 Never
168 Never
169 10-20 Cigarettes/day
170 Never
171 Never
172 Never
173 Never
174 Never
175 Never
176 Never
177 Never
178 Never
179 Never
180 Never
181 Never
Name: Cigarettes, Length: 182, dtype: object
在前几行之后,我得到的输出不应该给出 NaN。
0 0
1 0
2 1
3 0
4 0
5 0
6 0
7 0
8 0
9 0
10 NaN
11 NaN
12 NaN
13 NaN
14 0
...
167 NaN
168 NaN
169 NaN
170 NaN
171 NaN
172 NaN
173 NaN
174 NaN
175 NaN
176 NaN
177 NaN
178 NaN
179 NaN
180 NaN
181 NaN
Name: CigarNum, Length: 182, dtype: float64
【问题讨论】:
-
您确定第 10 行和第 11 行实际上等于“从不”并且值中没有空格或其他字符吗?
-
是的,我直到现在才检查空间。真的谢谢。你能帮我用一种有效的方法来忽略这些空间吗。我有更多的列在开始时有空间。提前致谢.