2017-06-15 51 views
0

我想创建数据框如下。 我试图创建它,但有几个for循环和许多代码行要做。 有什么有效的方法来创建数据框?在Python中使数据框

我有:

x=array([a,b,c,d]) 
y=array([A,B,C,D]) 
id=array([1,2,3,4]) 

我想拥有的一切:

df: 
id type cat 
1  a  x 
2  b  x 
3  c  x 
4  d  x 
1  A  y 
2  B  y 
3  C  y 
4  D  y 
+1

IIUC你应该能够做到'pd.concat([pd.DataFrame({ '身份证:身份证, '类型':X, '猫':' X” }),pd.DataFrame({'id:id,'type':y,'cat':'y'})])' – EdChum

+0

哦谢谢!!!!!!! – hyon

回答

0

IIUC可以使用concat,并通过通过使字典与所需的列名构建感兴趣2个dataframes和数据作为键,这将垂直堆叠数据帧:

In[85]: 
x=np.array(['a','b','c','d']) 
y=np.array(['A','B','C','D']) 
id=np.array([1,2,3,4]) 
pd.concat([pd.DataFrame({'id':id, 'type':x, 'cat':'x'}, columns=['id','type','cat']), pd.DataFrame({'id':id, 'type':y, 'cat':'y'}, columns=['id','type','cat'])]) 

Out[85]: 
    id type cat 
0 1 a x 
1 2 b x 
2 3 c x 
3 4 d x 
0 1 A y 
1 2 B y 
2 3 C y 
3 4 D y 
1
x = np.array(["a","b","c","d"]) 
y = np.array(["A","B","C","D"]) 
id = np.array([1,2,3,4]) 
df = pd.DataFrame({'id': id, 'x': x, 'y':y}) 
pd.melt(df, id_vars=['id'], value_vars=['x', 'y'], var_name='cat', value_name='type') 

您可以使用熊猫融化功能来创建您想要的输出数据帧。 请参考以下链接pandas.melt的详细信息,熔体