循环创建一个列表,我的最终列表如下所示:
L [col1, col2, col3, col4 \
0 N 225.0 12.0 03.0 B ,
col1, col2, col3, col4 \
0 W 223.0 12.0 01.0 M ,
col1, col2, col3, col4 \
0 X 203.0 11.0 04.0 P ]
我正在尝试将其转换为pandas DataFrame吗?
每行本身看起来都像是一个合适的数据框:
L[0]
col1 col2 col3 col4
N 225.0 12.0 03.0 B
答案 0 :(得分:1)
我认为需要使用DataFrame
构造函数创建2d numpy数组:
L = ['col1', 'col2', 'col3', 'col4',
'N 225.0', '12.0', '03.0', 'B' ,
'col1', 'col2', 'col3', 'col4',
'W 223.0', '12.0', '01.0', 'M' ,
'col1', 'col2', 'col3', 'col4',
'X 203.0', '11.0', '04.0', 'P' ]
a = np.array(L).reshape(-1, 8)[:, -4:]
print (a)
[['N 225.0' '12.0' '03.0' 'B']
['W 223.0' '12.0' '01.0' 'M']
['X 203.0' '11.0' '04.0' 'P']]
df = pd.DataFrame(a, columns = L[:4])
print (df)
col1 col2 col3 col4
0 N 225.0 12.0 03.0 B
1 W 223.0 12.0 01.0 M
2 X 203.0 11.0 04.0 P
说明:
首先将列表转换为一维numpy数组:
print (np.array(L))
['col1' 'col2' 'col3' 'col4' 'N 225.0' '12.0' '03.0' 'B' 'col1' 'col2'
'col3' 'col4' 'W 223.0' '12.0' '01.0' 'M' 'col1' 'col2' 'col3' 'col4'
'X 203.0' '11.0' '04.0' 'P']
然后reshape到Nx8个数组:
print (np.array(L).reshape(-1, 8))
[['col1' 'col2' 'col3' 'col4' 'N 225.0' '12.0' '03.0' 'B']
['col1' 'col2' 'col3' 'col4' 'W 223.0' '12.0' '01.0' 'M']
['col1' 'col2' 'col3' 'col4' 'X 203.0' '11.0' '04.0' 'P']]
最后选择最后4个列:
print (np.array(L).reshape(-1, 8)[:, -4:])
[['N 225.0' '12.0' '03.0' 'B']
['W 223.0' '12.0' '01.0' 'M']
['X 203.0' '11.0' '04.0' 'P']]
答案 1 :(得分:0)
尝试
L = ['Thanks You', 'Its fine no problem', 'Are you sure']
#create new df
df = pd.DataFrame({'col':L})
print (df)