我有一個數據框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
提交
取消