就是按照前两列合并?这个我帮你写了一个
import pandas as pd
from openpyxl import Workbook, load_workbook
from openpyxl.utils import get_column_letter
# 读取Excel文件
filename = 'data.xlsx'
df = pd.read_excel(filename, sheet_name='Sheet1')
# 根据股票代码和会计年度进行分组并连接内容
grouped = df.groupby(['股票代码', '会计年度'], sort=False)['内容'].apply(''.join).reset_index()
# 创建新的Excel文件并写入数据
new_filename = 'merged_data.xlsx'
sheet_name = 'Sheet2'
book = Workbook()
writer = pd.ExcelWriter(new_filename, engine='openpyxl')
writer.book = book
grouped.to_excel(writer, sheet_name=sheet_name, index=False)
writer.save()
# 调整列宽以适应数据
wb = load_workbook(new_filename)
ws = wb[sheet_name]
for column in ws.columns:
max_length = 0
column = column[0].column_letter
for cell in ws[column]:
try:
if len(str(cell.value)) > max_length:
max_length = len(str(cell.value))
except:
pass
adjusted_width = (max_length + 2) * 1.2
ws.column_dimensions[column].width = adjusted_width
wb.save(new_filename)
至于语调分析,这个你可以找找相关的库去计算