【问题标题】:Replacing string values in 2d array with numbers用数字替换二维数组中的字符串值
【发布时间】:2017-06-09 09:39:21
【问题描述】:

Imported Data

嗨,

我在 python 中使用 read_csv 函数从 url 导入数据。我正在导入的数据由一列字符/字符串组成,其他列由数字组成。有没有办法用数字替换第一列?例如,将 M 替换为 1,将 F 替换为 2,将 I 替换为 3?我正在考虑某种带有条件语句的循环,但我真的不知道 python 的正确语法。

    While i less than number of rows
       If X[i][0] == 'M' 
       X[i][0] = 1

       Else X[i][0] =='F'
       X[i][0] == 2
      i=i+1

【问题讨论】:

  • 至少你应该尝试编写某种带有条件语句的循环
  • 抱歉,已编辑
  • 所以你的数据就像[['M', ...], ['F', ....], ['F', ....]] ?
  • 是的,没错
  • 有很多学习基础Python的资源(例如this),你真的应该先自己尝试。

标签: python arrays loops replace


【解决方案1】:

只是从read_csv() 函数名称和图像中数据的格式猜测pandas 为库。

使用pandas,您不想使用用Python 代码编写的显式循环,而是使用pandas 提供的工具。在这种情况下,数据帧上的 map() 方法。

import pandas
df = pandas.read_csv('test.csv')
df.sex = df.sex.map({'M': 1, 'F': 2, 'I': 3})
print(df)
print(df.dtypes)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多