【发布时间】:2018-06-09 16:58:41
【问题描述】:
我在熊猫数据框中有这种奇怪的行为。我在具有以下示例内容的列上使用 .apply(single_seats_comma):(1,2)。但是,它似乎将其返回为range(1,3),而不是字符串(1,2)。其他行也有超过 2 个条目,例如
(30,31,32)。我有一个在, 上拆分的函数,并将括号中的每个值转换为一个新行,但是使用(x,x) 它会中断。
def single_seats_comma(row):
strlist = str(row).split(',')
strlist = filter(None, strlist)
intlist = []
for el in strlist:
intlist.append(int(el))
return intlist
“申请”示例:
tickets['seats'][:1].apply(single_seats_comma)
def的错误输出为
ValueError: invalid literal for int() with base 10: 'range(1'
试图找到解决方案,我发现了这个:
str(tickets['seats'][:1])
>>'0 (1, 2)\nName: seats, dtype: object'
tickets['seats'][:1].values
>> '[range(1, 3)]'
如果值只是1,2,它适用于列。
非常感谢任何帮助!
【问题讨论】:
标签: python string pandas range apply