小编cru*_*xer的帖子

使用pandas将字符串对象转换为int/float

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')
Run Code Online (Sandbox Code Playgroud)

csv文件"100&life_180_data.csv"包含age,bmi,Cigarettes,Alocohol等列.

No                int64
Age               int64
BMI             float64
Alcohol          object
Cigarettes       object
dtype: object
Run Code Online (Sandbox Code Playgroud)

香烟专栏包含"Never""1-5 Cigarettes/day","10-20 Cigarettes/day".我想为这些物体分配重量(从不,1-5根香烟/天,......)

预期的输出是附加的新列CigarNum,其仅包含数字0,1,2 CigarNum如预期的那样直到8行然后显示Nan直到CigarNum列中的最后一行

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 …
Run Code Online (Sandbox Code Playgroud)

python csv pandas

21
推荐指数
1
解决办法
6万
查看次数

标签 统计

csv ×1

pandas ×1

python ×1