python - 如何将 Pandas 数据框字符串值转换为数值

标签 python pandas scikit-learn

我有一个数据集。它有一些字符串列。我想转换这些字符串列。我正在使用这个数据集开发一个神经网络。但是由于数据集有一些字符串值,我无法训练我的神经网络。将这些字符串值转换为神经网络可读格式的最佳方法是什么?

这是我的数据集

type,amount,nameOrig,oldbalanceOrg,newbalanceOrig,nameDest,oldbalanceDest,newbalanceDest,isFraud,isFlaggedFraud
PAYMENT,9839.64,C1231006815,170136.0,160296.36,M1979787155,0.0,0.0,1,0
PAYMENT,1864.28,C1666544295,21249.0,19384.72,M2044282225,0.0,0.0,0,0
TRANSFER,181.0,C1305486145,181.0,0.0,C553264065,0.0,0.0,0,1

我想将那些 type,nameOrig,nameDest 字段转换为神经网络可读格式。

我用过下面的方法。但我不知道这是对还是错。

import pandas as pd
from sklearn.preprocessing import LabelEncoder

enc = LabelEncoder()

test_set = pd.read_csv('cs.csv')
new_test_set['type'] = enc.fit(new_test_set['type'])

我已经回答了以下问题。但是他们中的大多数都不适合我

How to convert string based data frame to numeric

converting non-numeric to numeric value using Panda libraries

converting non-numeric to numeric value using Panda libraries

最佳答案

在这种情况下,您可以使用 pandas 的数据类型 category 将字符串映射到索引(参见 categorical data )。所以没有必要使用 LabelEncoderOneHotEncoderscikit-learn .

import pandas as pd

df = pd.read_csv('54055554.csv', header=0, dtype={
    'type': 'category',  # <--
    'amount': float,
    'nameOrig': str,
    'oldbalanceOrg': float,
    'newbalanceOrig': float,
    'nameDest': str,
    'oldbalanceDest': float,
    'newbalanceDest': float,
    'isFraud': bool,
    'isFlaggedFraud': bool
})

print(dict(enumerate(df['type'].cat.categories)))
# {0: 'PAYMENT', 1: 'TRANSFER'}

print(list(df['type'].cat.codes))
# [0, 0, 1]

来自 CSV 的数据:

type, ...
PAYMENT, ...
PAYMENT, ...
TRANSFER, ...

关于python - 如何将 Pandas 数据框字符串值转换为数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54055554/

相关文章:

Python 套接字 - "blocking"套接字操作到底是什么?

python - 如何在不计算字符串本身的情况下在 Python 3 中右对齐字符串?

python - Pandas Dataframe CSV 导出,如何防止额外的双引号字符

python - statsmodels tsa AR 和 ARMA 模型中的频率参数选项

python - 如何替换pandas数据框中的字符?

python - 使用 DataFrame 导出系列进行转换

python - 时间作为 Python 字典的关键

python - 使用sklearn提取一个中文句子的特征时出现错误

python - 有没有一种方法可以将多个逻辑回归方程整合为一个?

python - 使用 sklearn 进行音乐流派分类 : how to accurately evaluate different models