使用列表

时间:2016-01-19 09:21:48

标签: python pandas

我有一个包含不同数据帧的列表。我需要将数据帧合并到一起 列名称为一,并将其​​写入CSV输出或单个数据帧。

我已设法获取列名,但无法想到执行上述操作的良好逻辑 操作

我的情况:

MERGED_LIST有9个数据框元素。列名如下

array(['A','B','C']) - 10 rows
array(['A','B','C']) - 15 rows
array(['W','X','Y','Z']) - 10 rows
array(['W','X','Y','Z']) - 20 rows
array(['W','X','Y','Z']) - 45 rows
array(['W','X','Y','Z']) - 30 rows
array(['W','X','Y','Z']) - 5 rows
array(['H']) - 50 rows

需要最终的支出:

CSV1或DF1:

A B C 

有25行

CSV2或DF2:

W X Y Z

有110行

CSV3或DF3:

H 

有50行

1 个答案:

答案 0 :(得分:0)

不确定这是否是您想要的。这是我的回应。让我知道是否有帮助。如果没有,请提供更多详细信息,以便我们为您提供帮助。

我知道这是一篇过时的文章,但想看看这是否是您想要的。

我还建议您查看我在Pandas Merging 101Pandas .concat回复中找到的最佳帖子。

import pandas as pd

df1 = pd.DataFrame({'A':['A1']*10,
                   'B':['B1']*10,
                   'C':['C1']*10})

df2 = pd.DataFrame({'A':['A2']*15,
                   'B':['B2']*15,
                   'C':['C2']*15})

df3 = pd.DataFrame({'W':['W3']*10,
                   'X':['X3']*10,
                   'Y':['Y3']*10,
                   'Z':['Z3']*10})

df4 = pd.DataFrame({'W':['W4']*20,
                   'X':['X4']*20,
                   'Y':['Y4']*20,
                   'Z':['Z4']*20})

df5 = pd.DataFrame({'W':['W5']*45,
                   'X':['X5']*45,
                   'Y':['Y5']*45,
                   'Z':['Z5']*45})

df6 = pd.DataFrame({'W':['W6']*30,
                   'X':['X6']*30,
                   'Y':['Y6']*30,
                   'Z':['Z6']*30})

df7 = pd.DataFrame({'W':['W7']*5,
                   'X':['X7']*5,
                   'Y':['Y7']*5,
                   'Z':['Z7']*5})

dfH = pd.DataFrame({'H':['H8']*50})

dfABC  = df1.merge(df2, on=['A','B','C'],how='outer')
dfWXYZ = pd.concat([df3,df4,df5,df6,df7], axis=0,sort=False)

print(dfABC)
print(dfWXYZ)
print(dfH)

输出如下:

dfABC results in 25 rows (10 + 15)

dfWXYZ results in 110 rows (10 + 20 + 45 + 30 + 5)

dfH results in 50 rows