【问题标题】:How to break elements in an array at each comma? python如何在每个逗号处打破数组中的元素? Python
【发布时间】:2021-06-01 15:15:20
【问题描述】:

所以我打开了一个数据集,简而言之,它看起来像这样:

list1= ['Adrian,20,5,2000,green', 'Steve,15,6,1997,blue', ...]
trial = np.array(list1)

当我尝试 print(trial[0][0]) 来获取 Adrian 时,我只得到了 A。

所以我想我应该把后面有逗号的所有东西都变成一个独立的元素,请帮我把输出变成:

(['Adrian', 20, 5, 2000, 'green'], ['steve', 15, 6, 1997, 'blue'], ...)

print(trial[0]) 将给出:['Adrian', 20, 5, 2000, 'green']

并且 print(trial[0][0]) 将给出:Adrian

【问题讨论】:

  • 您的数据似乎来自读取错误的 CSV。与其在错误读取数据后尝试修复数据,不如考虑首先正确读取数据。如果是这样,您可能想edit您的问题以显示数据及其读取方式。

标签: arrays python-3.x numpy


【解决方案1】:

只需使用带逗号的split函数作为参数,如下所示:-

list2= ['Adrian,20,5,2000,green', 'Steve,15,6,1997,blue']
list1= []
for i in list2:
    a = i.split(',')
    list1 += [a]
trial = numpy.array(list1)
print(trial[0][0])

这将返回阿德里安。 您仍然需要将数字类型转换为整数,但这很容易解决。

【讨论】:

  • 你能举个例子吗?
  • @AdryanZiegler,不客气。同样,请记住,列表中的数字当前仍然是字符串,如果要对它们执行操作,则需要先确保它们是整数。
  • 是的,我注意到了。有没有办法在循环中使用 if 语句检查字符串是否可以转换为整数,如果可以将其更改为该整数,否则跳到下一个元素?类似于 for item in list1: for element in item: if int(element) == true: element = int(element) 或者可能将其添加到另一个空列表中,你怎么看?再次非常感谢,我真的很感激!!!
  • @AdryanZiegler 使用 "String_number".isnumeric() ,如果它是一个数字,它将返回 true
猜你喜欢
  • 2018-01-12
  • 2016-09-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-14
  • 2019-04-06
相关资源
最近更新 更多