我有一个数据框和两个大小不同的数组,我想创建一个数据框
例如
import pandas
import numpy
df = pandas.DataFrame(numpy.array([[0,0,1]]),columns = ['A', 'B', 'C'])
V1=numpy.array([0,1,3,4])
V2=numpy.array([2,3,5,8,11,12])
我想获得一个像这样的单个数据框:
A B C V1 V2
0 0 1 0 2
0 0 1 1 3
0 0 1 3 5
0 0 1 4 8
0 0 1 Nan 11
0 0 1 Nan 12
答案 0 :(得分:1)
首先需要在第一个DataFrame中以最大数组长度重复数组,然后为每个数组Series
创建并通过concat
连接在一起:
a = [V1, V2]
n = max(map(len, a))
df1 = pd.DataFrame(np.array(np.repeat([[0,0,1]], n, axis=0)), columns = ['A', 'B', 'C'])
df = pd.concat([df1, pd.Series(V1, name='V1'), pd.Series(V2, name='V2')], axis=1)
print (df)
A B C V1 V2
0 0 0 1 0.0 2
1 0 0 1 1.0 3
2 0 0 1 3.0 5
3 0 0 1 4.0 8
4 0 0 1 NaN 11
5 0 0 1 NaN 12