在熊猫的CSV的另一列中创建基于数字行值分配的字符串值的新列会返回错误:“ KeyError:0”

BoroBorooooooooooooooooooooooooo

在Python中使用熊猫,导入和导出CSV文件。

Type列中的数据类型从原始CSV导入到数据类型为int64的数据帧中。

为了实现此目的,将基于原始CSV的“类型”列中的数值,将相应的类型(文本字符串)添加到“新类型”列中。使用字典可以通过以下方式进行此查找:

如果Type等于1,则在CSV的此“行”中,将在导出的CSV的该行旁边(名称为Newtype)为其分配文本字符串“ NameOne”(在代码末尾)。 )

import pandas as pd

import csv



df = pd.read_csv("import.csv", names=["A", "B", "Month", "Day", "Time", "Type"])


df['Newtype'] = df['Type']

dictio = {1:'NameOne', 2:'NameTwo', 3:'NameThree', 4:'NameFour', 5:'NameFive'}


df['Newtype'] = df['Newtype'].apply(lambda x: dictio[x])


df.to_csv("export.csv", encoding='utf-8')

但是,运行此代码时将返回错误,错误为:

KeyError: 0

代码中以下行返回上述错误:

df['Newtype'] = df['Newtype'].apply(lambda x: dictio[x])

我怀疑有问题的代码行如下,但是我看不到应该如何正确修改它,有什么建议吗?

df['Newtype'] = df['Type']
BEN_YO

您有将其命名为dictio的dict,那么我们只需要map在这里(或replace

df['Newtype'] = df['Type'].map(dictio)
#df['Newtype'] = df['Type'].replace(dictio)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章