【发布时间】:2020-04-16 19:39:33
【问题描述】:
我需要检查一个大文件 .csv 并替换,并将其分类在一列dataframe['value']。
这是我的代码,但运行缓慢:
def encoder():
classes={}
a=dataframe['value']
c=-1
for i in a:
if i not in classes:
print(i)
c=c+1
classes[i]=c
for i in range(len(a)):
print(i)
dataframe['value'][i]=classes[a[i]]
有没有更好的解决方案?
这是我的数据集的一部分:
subject_id hadm_id seq_num icd9_code icustay_id value valueuom
18557 183341 4 42731 228376.0 Tracheostomy 0
18557 178725 4 42731 228376.0 Tracheostomy 0
18557 173656 5 42731 228376.0 Tracheostomy 0
18557 138883 10 42731 228376.0 Tracheostomy 0
18557 183341 4 42731 228376.0 30 0
18557 178725 4 42731 228376.0 30 0
18557 173656 5 42731 228376.0 30 0
18557 138883 10 42731 228376.0 30 0
18557 183341 4 42731 228376.0 2 Person Assist 0
18557 178725 4 42731 228376.0 2 Person Assist 0
18557 173656 5 42731 228376.0 2 Person Assist 0
18557 138883 10 42731 228376.0 2 Person Assist 0
18557 183341 4 42731 228376.0 Calm 0
18557 178725 4 42731 228376.0 Calm 0
18557 173656 5 42731 228376.0 Calm 0
18557 138883 10 42731 228376.0 Calm 0
18557 183341 4 42731 228376.0 Present 0
18557 178725 4 42731 228376.0 Present 0
18557 173656 5 42731 228376.0 Present 0
18557 138883 10 42731 228376.0 Present 0
【问题讨论】:
-
分类是什么意思?如果要提取列中的所有不同值,请使用 df['column'].drop_duplicates()
-
从您所做的事情来看,您可以为类创建字典并应用 MAP。此外,如果您只想为整列设置一个值,则可以执行 df['value'] = 0
-
您能否为您的数据添加更多详细信息,特别是 value 列?它是否还包含空值,或者它只是 0 ?此列是否有跳过值或没有连续值?这就是你想重新分类的原因吗?
-
另外,我建议你通过stackoverflow.com/help/how-to-ask。它将帮助您编写包含必要细节的精美、简洁的问题。
标签: python pandas dictionary data-mining