Red*_*oar 5 python dataframe pandas
给定的
data= [
(array([0,0,1]),1),
(array([0,1,1]),1),
(array([1,0,1]),0),
(array([1,1,1]),1)
]
Run Code Online (Sandbox Code Playgroud)
如何将其转换为 Pandas DataFrame 以便每一列都是独立的?
A B C Z
0 0 1 1
0 1 1 1
1 0 1 0
1 1 1 1
Run Code Online (Sandbox Code Playgroud)
我会用np.append我会在列表理解中
pd.DataFrame([np.append(*row) for row in data], columns=list('ABCZ'))\n\n A B C Z\n0 0 0 1 1\n1 0 1 1 1\n2 1 0 1 0\n3 1 1 1 1\nRun Code Online (Sandbox Code Playgroud)\n\n或者更有效地使用np.column_stack或者使用andzip
pd.DataFrame(np.column_stack(list(zip(*data))), columns=list('ABCZ'))\n\n A B C Z\n0 0 0 1 1\n1 0 1 1 1\n2 1 0 1 0\n3 1 1 1 1\nRun Code Online (Sandbox Code Playgroud)\n\n定时
\n\n%timeit pd.DataFrame([np.append(*row) for row in data], columns=list('ABCZ'))\n1000 loops, best of 3: 460 \xc2\xb5s per loop\n\n%timeit pd.DataFrame(np.column_stack(list(zip(*data))), columns=list('ABCZ'))\n10000 loops, best of 3: 130 \xc2\xb5s per loop\n\n%timeit pd.DataFrame([e[0].tolist()+[e[1]] for e in data],columns=['A','B','C','Z'])\n1000 loops, best of 3: 446 \xc2\xb5s per loop\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
8662 次 |
| 最近记录: |