我有一个数据框df,其中有一列称为columnListstr。"1 2,7 8,10 7"然后我将它们转换为一个列表,如下所示:[1 2,7 8,10 7]我想将列表中的值转换为元组:[(1,2),(7,8),(10,7)]当前代码:temp = df['columnList'].str.split(',')result = list(zip(temp[::2], temp[1::2]))print(result)我得到空列表。df看起来像这样:column1 columnList YY 1 2,7 8,10 7名称:df,数据类型:对象
3 回答
肥皂起泡泡
TA贡献1829条经验 获得超6个赞
此处不需要使用zip,只需遍历列表,拆分每个元素并将其存储为元组即可。
l = [ '1 2', '7 8', '10 7']
[tuple(int(i) for i in numbers.split()) for numbers in l]
#[(1, 2), (7, 8), (10, 7)]
交互式爱情
TA贡献1712条经验 获得超3个赞
试试这个,
df.columnsList.apply(lambda x : [tuple(map(int, x.split())) for x in "1 2, 7 8, 10 7".split(",")])
输出,
0 [(1, 2), (7, 8), (10, 7)] Name: columnsList, dtype: object
慕斯709654
TA贡献1840条经验 获得超5个赞
您可以将字符拆分后映射到整数,然后将映射对象转换为元组:
temp = df['columnList'].str.split(',')
result = [tuple(map(int, num.split())) for num in temp]
print(result)
# [(1, 2), (7, 8), (10, 7)]
添加回答
举报
0/150
提交
取消