将一系列熊猫数据帧合并为单个数据帧

时间:2021-04-04 06:06:57

标签: python-3.x pandas dataframe data-science

我在变量 <concepts> 中存储了一系列 Pandas 数据框,类似于以下内容:

df

df

我想将它们合并到一个熊猫数据框,如下所示:

|  0    |   1    |
+-------+--------+
|ABCD   |   WXYZ |

|  0    |   1    |
+-------+--------+
|DEFJ   |   HJKL |

|  0    |   1    |
+-------+--------+
|ZXCT   |   WYOM |

|  0    |   1    |
+-------+--------+
|TYZX   |   NMEX |

那么如何将一系列熊猫数据帧合并为一个熊猫数据帧?

2 个答案:

答案 0 :(得分:1)

就像你现在的代码一样,你只输出一个数据帧,只有一行(覆盖其他的)。

试试这个:

# Copy the names to pandas dataframes and save them in a list
import pandas as pd

dfs = []
for j in range(0,5):
  for i in divs[j].find_elements_by_tag_name('a'):
    i = i.get_attribute('text')
    i = parse_name(i)
    df = pd.DataFrame(i)
    df = df.transpose()
    dfs.append(df)

# Aggregate all dataframes in one
new_df = dfs[0]
for df in dfs[1:]:
    new_df = new_df.append(df)

# Update index
new_df = new_df.reset_index(drop=True)

# Print first five rows
new_df.head()
    0                   1
0   Lynn Batten         Emeritus Professor
1   Andrzej Goscinski   Emeritus Professor
2   Jemal Abawajy       Professor
3   Maia Angelova       Professor
4   Gleb Beliakov       Professor

答案 1 :(得分:0)

有四种方法可以连接或合并数据帧,您可以参考this post

这些是最常见的实现

import pandas as pd 

df1 = pd.DataFrame({0:['ABCD'], 1:['WXYX']})
df2 = pd.DataFrame({0:['DEFJ'], 1:['HJKL']})
df3 = pd.DataFrame({0:['ZXCT'], 1:['WYOM']})   
...
df = pd.concat([df1, df2, df3], axis=0)


print(df.head())

或者如果您有一个具有相同标题的数据框列表,您可以尝试

dfs = [df1, df2, df3 ..]
df = pd.concat(dfs, axis=0)

最简单的方法就是使用 df.append

 df = df.append(anotherdf)