我正在尝试完成一些我认为很容易的事情:从我的数据帧中提取三列,使用标签编码器对它们进行编码,然后简单地用新值替换当前值。你知道吗
我有这样一个数据帧:
| Order_Num | Part_Num | Site | BUILD_ID |
| MO100161015 | PPT-100K39 | BALT | A001 |
| MO100203496 | MDF-925R36 | BALT | A001 |
| MO100203498 | PPT-825R34 | BALT | A001 |
| MO100244071 | MDF-323DCN | BALT | A001 |
| MO100244071 | MDF-888888 | BALT | A005 |
我实际上是在尝试使用sklearn
的LabelEncoder()
将字符串变量转换为数字变量。目前,我有一个函数str_to_num
,在这个函数中,我给它一个列,它返回一个转换数据的数组(列)。效果很好。你知道吗
但是,我正在努力从数据帧中删除旧数据并将其添加到新数据帧中。我的剧本如下:
from sklearn.ensemble import RandomForestRegressor
from sklearn.model_selection import train_test_split
from sklearn import preprocessing
import pandas as pd
import numpy as np
# Convert the passed in column
def str_to_num(arr):
le = preprocessing.LabelEncoder()
array_of_parts = []
for x in arr:
array_of_parts.append(x)
new_arr = le.fit_transform(array_of_parts)
return new_arr
# read in data from csv
data = pd.read_csv('test.csv')
print(data)
# Create the new data
converted_column = str_to_num(data['Order_Num'])
print(converted_column)
# How can I replace data['Order_Num'] with the values in converted_column?
# Drop the old data
dropped = data.drop('Order_Num', axis=1)
# Add the new_data column to the place where the old data was?
根据我当前的脚本,如何用converted_column
中的值替换'Order\Num'列中的值?我试过[pandas.DataFrame.replace][1]
,但它会替换特定的值,我不知道如何将其映射到返回的数据。你知道吗
我希望我的预期数据是:
| Order_Num | Part_Num | Site | BUILD_ID |
| 0 | PPT-100K39 | BALT | A001 |
| 1 | MDF-925R36 | BALT | A001 |
| 2 | PPT-825R34 | BALT | A001 |
| 3 | MDF-323DCN | BALT | A001 |
| 3 | MDF-888888 | BALT | A005 |
我的python --version
返回
3.6.7
熊猫的美丽有时被低估了——通常你只需要做这样的事情:
还有df.apply()选项
相关问题 更多 >
编程相关推荐