【发布时间】:2015-10-29 21:26:28
【问题描述】:
尝试对医疗数据执行简单的线性分类。样本数据由所有字符串组成,大部分值都是“是”、“否”格式,我希望将这些数据转换为整数值 1 和 0,以便进行一些统计分析。
以下是我的代码
import pandas as pd
from sklearn.cross_validation import train_test_split
from sklearn import preprocessing
df = pd.read_csv('sample-data.csv',encoding='utf-16', header=None, sep=',',names=['Temp','Occurrence','Lumbar-pain','Urine-pushing','Micturition-pains','Burning-of-urethra-swelling-of-urethra-outlet','Outcome1-Urinary-bladder','Outcome2-Nephritis-of-renal'])
Click here to view Sample-data.csv
我尝试在将 csv 数据移动到数据框后进行转换,尝试使用 map() 对特定列进行转换,但我希望对值为“是”、“否”字符串的所有列执行此操作。 在运行 read_csv 时,是否有任何一揽子方法可以直接将所有“是”、“否”字符串转换为整数 1 和 0
d = {'yes': 1, 'no': 0}
print df['Outcome1-Urinary-bladder'].map(d)
查看this solution,但它不适合我的要求。
请帮帮我,在此先感谢。
【问题讨论】:
-
Jianxun 的回答看起来不错,但如果你想要一个 sklearn 解决方案,
LabelBinarizer正是你想要的 scikit-learn.org/stable/modules/generated/… -
将字符串转换成什么?你应该修正你的标题。
标签: python csv pandas machine-learning scikit-learn