【发布时间】:2018-10-29 03:05:36
【问题描述】:
假设我有以下代码:
import pandas as pd
import numpy as np
A = ['red', 'blue']
B = range(2)
C = np.random.random((4,2,2))
import pandas as pd
df = pd.DataFrame({'Color':np.repeat(A,2),'Trial':np.tile(B,2),'V0':C[:,0,0],'V1':C[:,0,1],
'V2':C[:,1,0], 'V3':C[:,1,1]})
df
输出以下数据帧
> Color Trial V0 V1 V2 V3
> 0 red 0 0.726781 0.549726 0.053999 0.469885
> 1 red 1 0.609131 0.012120 0.587780 0.344290
> 2 blue 0 0.285235 0.491907 0.907871 0.549792
> 3 blue 1 0.646334 0.164288 0.029917 0.181290
如果数组的大小增加,我想避免输入 numpy 数组的每个条目,所以我想出了以下针对更大数组的解决方案
A = ['red', 'blue']
B = range(2)
C = np.random.random((4,2,2))
import pandas as pd
df = pd.DataFrame({'Color':np.repeat(A,2),'Trial':np.tile(B,2)})
_df = pd.DataFrame(C.reshape(4,4)).add_prefix('V')
df = pd.concat([df,_df],axis=1)
df
具有相同的输出。我的问题是,是否有更好的方法来执行此操作,而不涉及为我要包含的每个数组创建数据框然后将它们连接起来?
【问题讨论】:
-
你想避免哪一步?
标签: python arrays pandas dataframe