【问题标题】:How do I rename the values in when I read pandas csv file如何在读取 pandas csv 文件时重命名值
【发布时间】:2017-03-31 12:02:27
【问题描述】:

当我读取 csv 文件时,在一个命令行中,如何重命名这些值?

df = pd.read_csv('aaa.csv')

我想看看这个数据框

Hobby  Sex  No  
0   0   12345

0     1     67788

0     1     0909

1     1     5867433

像这样转换新值。

Hobby      Sex       No 

Travel    Female    12345

Travel     Male     67788

Travel     Male     0909


Dance      Male     5867433

【问题讨论】:

  • 不要使用文件作为变量
  • @Boud 我对在 Python 中处理 csv 不太了解,但这有什么问题?对于普通文件,f = open("stuff.txt", 'r') 完全没问题,那么df = pd.read_csv('aaa.csv') 有什么问题?
  • 这是我编辑的版本,OP是file=并取代了file函数

标签: python pandas rename


【解决方案1】:

read_csv DOCS

转换器dict,默认None 用于转换某些列中的值的函数的字典。键可以是整数或列标签

演示

converters = dict(Hobby=lambda x: {'0': 'Travel', '1': 'Dance'}[x],
                  Sex=lambda x: {'0': 'Female', '1': 'Male'}[x])

df = pd.read_csv('aaa.csv', converters=converters)

df

【讨论】:

  • 非常感谢! lambda函数后面的[x]是干什么的??
  • 它正在从字典中获取 x
【解决方案2】:

使用带有映射的字典并将每个字典应用到相应的列:

df['Hobby'] = df.Hobby.map({0:'Travel', 1:'Dance'})
df
Out[52]: 
    Hobby  Sex       No
0  Travel    0    12345
1  Travel    1    67788
2  Travel    1      909
3   Dance    1  5867433

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-17
    • 1970-01-01
    • 2019-04-04
    • 1970-01-01
    • 2022-01-24
    相关资源
    最近更新 更多