python三个dataframe合并举例
时间: 2023-07-05 21:33:45 浏览: 91
假设我们有三个DataFrame:df1、df2和df3。以下是如何将它们合并的示例代码:
```
import pandas as pd
df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
df2 = pd.DataFrame({'A': [4, 5, 6], 'B': [7, 8, 9]})
df3 = pd.DataFrame({'A': [7, 8, 9], 'B': [10, 11, 12]})
# 使用concat方法按行合并
df_concat = pd.concat([df1, df2, df3])
# 使用merge方法按列合并
df_merge = pd.merge(df1, pd.merge(df2, df3, on='A'), on='A')
# 使用join方法按列合并
df_join = df1.join([df2, df3])
```
其中,`concat()`方法按行合并,`merge()`方法按列合并,`join()`方法也按列合并。在本例中,`merge()`和`join()`方法都需要指定列名进行合并。
相关问题
用python整理含有业务名称和票号两列数据的Excel表,其中业务名称为字符串,票号为一个八位整数,要求如下: 1.如果一个业务只对应一个票号,则无需修改 2.如果一个业务对应有多个票号,将这些票号合并在一起,并默认用逗号分隔 举例: 如果原数据为:业务1 19283987;业务1 19837283;业务2 19283749 则最后输出为:业务1 19283987,19837283;业务2 19283749
您可以使用 Python 中的第三方库 pandas 来读取和整理 Excel 表格。以下是一个示例代码,可以用来实现您的需求:
```python
import pandas as pd
# 读取 Excel 文件
df = pd.read_excel('data.xlsx')
# 根据业务名称和票号分组,并将票号合并成一个字符串
df_grouped = df.groupby(['业务名称'])['票号'].apply(lambda x: ','.join(x.astype(str))).reset_index()
# 输出结果
for index, row in df_grouped.iterrows():
print(row['业务名称'], row['票号'])
```
在这个示例代码中,我们首先使用 `read_excel` 函数读取 Excel 文件,并将结果存储在一个 pandas 的 DataFrame 中。然后,我们使用 `groupby` 方法根据业务名称和票号分组,然后将票号合并成一个字符串。最后,我们使用 `iterrows` 方法遍历整个 DataFrame,输出整理后的结果。
请注意,这个示例代码中假设票号列的列名为 `'票号'`,业务名称列的列名为 `'业务名称'`。如果您的列名不同,请相应地修改代码。另外,如果您的 Excel 表格包含多个工作表,请使用 `read_excel` 函数的 `sheet_name` 参数来选择要读取的工作表。
利用Python完成.首先在,三省站点.xlsx 文件中,遍历福建省所有的‘区站号’(在A列)。 2.根据已得福建省的‘区站号’,在 MON 文件夹下遍历出所有福建省文件, 举例每个文件名中都包含区站号,为后五位数字。将所有后五位数为区站号的TXT文件转化成一个Excel文件
你可以使用以下代码来完成你的需求:
```python
import os
import pandas as pd
# 读取三省站点.xlsx文件
df = pd.read_excel('三省站点.xlsx')
# 获取福建省的所有区站号
fujian_stations = df[df['省份'] == '福建']['区站号']
# 遍历MON文件夹下的所有福建省文件
mon_folder = 'MON'
fujian_files = []
for filename in os.listdir(mon_folder):
# 检查文件名是否包含福建省的区站号
for station in fujian_stations:
if str(station)[-5:] in filename:
fujian_files.append(os.path.join(mon_folder, filename))
break
# 将所有匹配的TXT文件转化为一个Excel文件
output_file = '福建省文件.xlsx'
output_df = pd.DataFrame()
for file in fujian_files:
if file.endswith('.txt'):
txt_df = pd.read_csv(file, sep='\t') # 根据实际的分隔符修改参数
output_df = output_df.append(txt_df)
output_df.to_excel(output_file, index=False)
```
请确保将代码中的文件名和文件夹名字按照实际情况进行修改。此代码将遍历三省站点.xlsx文件中的区站号,并在MON文件夹下查找包含福建省区站号的文件(以.txt结尾)。然后将这些TXT文件合并到一个Excel文件中。
阅读全文