pandas 多表格 数据匹配 合并 数据量有2w多行
时间: 2024-02-21 18:07:00 浏览: 209
您好,针对您的问题,您可以使用 pandas 库中的 merge() 函数将多个表格进行合并。对于数据量较大的情况,您可以使用分块读取数据的方法,分批次进行数据匹配和合并。以下是一个示例代码:
```python
import pandas as pd
# 读取数据并进行分块
chunk_size = 1000
chunk_list = []
for chunk in pd.read_csv('file1.csv', chunksize=chunk_size):
chunk_list.append(chunk)
df1 = pd.concat(chunk_list)
chunk_list = []
for chunk in pd.read_csv('file2.csv', chunksize=chunk_size):
chunk_list.append(chunk)
df2 = pd.concat(chunk_list)
# 进行数据匹配和合并
merged_df = pd.merge(df1, df2, on='key_column')
# 保存合并后的数据
merged_df.to_csv('merged_data.csv', index=False)
```
其中,'file1.csv' 和 'file2.csv' 分别是需要进行合并的两个表格,'key_column' 是两个表格中用于匹配的列名。您可以根据实际情况进行修改。
相关问题
pandas 多表格 数据关键字 匹配 写入表格1 数据量有2w多行
如果您需要匹配多个表格中的关键字,并将匹配结果写入到其中一个表格中,可以使用 pandas 库中的 merge() 函数进行表格合并,并使用 apply() 函数对每一行进行匹配操作。以下是一个示例代码:
```python
import pandas as pd
# 读取数据并进行分块
chunk_size = 1000
chunk_list = []
for chunk in pd.read_csv('file1.csv', chunksize=chunk_size):
chunk_list.append(chunk)
df1 = pd.concat(chunk_list)
chunk_list = []
for chunk in pd.read_csv('file2.csv', chunksize=chunk_size):
chunk_list.append(chunk)
df2 = pd.concat(chunk_list)
chunk_list = []
for chunk in pd.read_csv('file3.csv', chunksize=chunk_size):
chunk_list.append(chunk)
df3 = pd.concat(chunk_list)
# 定义匹配函数
def match_keywords(row):
keywords = df2[df2['id'] == row['id']]['keywords'].values[0]
if pd.isna(keywords):
return None
else:
for keyword in keywords.split(','):
if keyword in row['text']:
return df3[df3['keyword'] == keyword]['category'].values[0]
return None
# 进行数据匹配和合并
merged_df = pd.merge(df1, df2, on='id')
merged_df['category'] = merged_df.apply(match_keywords, axis=1)
# 保存合并后的数据
merged_df.to_csv('merged_data.csv', index=False)
```
其中,'file1.csv'、'file2.csv' 和 'file3.csv' 分别是需要进行合并的三个表格,'id' 是用于匹配的列名,'keywords' 是用于匹配的关键字列名,'text' 是需要匹配的文本列名,'keyword' 是关键字对应的分类列名。您可以根据实际情况进行修改。
阅读全文