我想连接几个导致字符串列表或整数列表的列。
到目前为止我已经这样做了;
data1 = pd.DataFrame({'A':[1,2,3],'B':[4,5,6],'C':[7,8,9]})
data1['D'] = [' '.join(str(row)) for row in data1[data1.columns[0:3]].values] # add a new column by concatenating the existing columns
A B C D
0 1 4 7 [ 1 4 7 ]
1 2 5 8 [ 2 5 8 ]
2 3 6 9 [ 3 6 9 ]
如何将字符串'[1 4 7]'
转换为['1','4','7']
之类的字符串列表或[1,4,7]
之类的整数列表?
答案 0 :(得分:2)
使用正则表达式:(可以很容易地修改以提取负浮点数...)
>>> import re
>>> re.findall('(\d+)', '[1 4 7]')
['1', '4', '7']
答案 1 :(得分:2)
如果没有必要,您不必将它们连接到字符串。
import pandas as pd
data1 = pd.DataFrame({'A':[1,2,3],'B':[4,5,6],'C':[7,8,9]})
longs = data1.iloc[0].tolist()
iloc[0]
选择DataFrame的第一项,tolist()
将其转换为列表。您将获得long
类型的数字列表。
然后使用此选项将列表值转换为int
:
ints = [int(x) for x in longs]
长话短说:
ints = [int(x) for x in data1.iloc[0].tolist()]
答案 2 :(得分:1)
请勿使用join
:
data1['E'] = [row for row in data1[data1.columns[0:3]].values]