python两个list纵向拼成一个dataframe
时间: 2023-06-12 19:06:44 浏览: 147
可以使用 pandas 库中的 DataFrame 函数将两个列表拼接成一个 DataFrame,其中一个列表作为一列数据,另一个列表作为另一列数据。
示例代码如下:
``` python
import pandas as pd
list1 = [1, 2, 3, 4]
list2 = ['a', 'b', 'c', 'd']
df = pd.DataFrame({'col1': list1, 'col2': list2})
```
这里将 `list1` 和 `list2` 合并成一个 DataFrame,其中 `list1` 对应的列名为 `col1`,`list2` 对应的列名为 `col2`。可以使用 `print(df)` 来查看 DataFrame 的结果。
相关问题
使用pandas忽略行列索引,纵向拼接多个dataframe
可以使用 pandas 的 `concat()` 函数纵向拼接多个 DataFrame。需要将要拼接的 DataFrame 放入一个列表中,并在调用 `concat()` 时指定 `axis=0` 参数。示例代码如下:
``` python
import pandas as pd
df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
df2 = pd.DataFrame({'A': [7, 8, 9], 'B': [10, 11, 12]})
df3 = pd.DataFrame({'A': [13, 14, 15], 'B': [16, 17, 18]})
df_list = [df1, df2, df3]
result = pd.concat(df_list, axis=0, ignore_index=True)
print(result)
```
这样会忽略原来的行索引,并使用新的默认索引。
如果需要忽略列索引,可以在 concat 函数里设置 `ignore_index=True`即可
在包含多个DataFrame的列表中找到某列完全相同的DataFrame并对他们进行纵向拼接的代码
可以使用 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 都有相同的列名。如果不是这种情况,需要进行额外的处理。
阅读全文