删除列并将其添加到DataFramePython3.x

2024-07-08 18:04:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试完成一些我认为很容易的事情:从我的数据帧中提取三列,使用标签编码器对它们进行编码,然后简单地用新值替换当前值。你知道吗

我有这样一个数据帧:

|  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   |

我实际上是在尝试使用sklearnLabelEncoder()将字符串变量转换为数字变量。目前,我有一个函数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


Tags: theto数据infromimportdataorder

热门问题