在包含多个DataFrame的列表中找到某列完全相同的DataFrame并对他们进行纵向拼接的代码
时间: 2023-07-25 17:10:43 浏览: 86
可以使用 pandas 库的 concat 函数来实现列完全相同的 DataFrame 的纵向拼接。具体代码如下:
```python
import pandas as pd
# 假设有一个包含多个 DataFrame 的列表 dfs
dfs = [df1, df2, df3, ...]
# 获取第一个 DataFrame 的列名
cols = dfs[0].columns.tolist()
# 用字典存储 DataFrame 列和 DataFrame 对象的对应关系
col_to_df = {}
for col in cols:
col_to_df[col] = [df for df in dfs if df[col].equals(dfs[0][col])]
# 找到列完全相同的 DataFrame
dfs_to_concat = []
for col, df_list in col_to_df.items():
if len(df_list) > 1 and df_list not in dfs_to_concat:
dfs_to_concat.append(df_list)
# 对列完全相同的 DataFrame 进行纵向拼接
result_dfs = []
for dfs in dfs_to_concat:
result_df = pd.concat(dfs)
result_dfs.append(result_df)
# 将不需要拼接的 DataFrame 加入结果列表中
for df in dfs:
if df not in [df for dfs in dfs_to_concat for df in dfs]:
result_dfs.append(df)
```
这段代码会找到包含某列完全相同的 DataFrame,然后将它们进行纵向拼接,最终返回拼接后的多个 DataFrame。注意,这段代码假设每个 DataFrame 都有相同的列名。如果不是这种情况,需要进行额外的处理。
阅读全文