Python将多行转换成一行
在工作中遇到需要将场景对应的所有小区名称和小区id拼接到一起,变成机器语言就是要利用Python将多行转换成一行
原始数据如下:
最后得到的数据如下:
代码如下:
import pandas as pd
# import glob
import PySimpleGUI as sg
# 需要拆分的文件路径
xlsx = sg.popup_get_file('请选择xlsx脚本所在的位置')
file = sg.popup_get_folder('请选择合并数据要保存的位置')
print("开始读取数据,请稍等")
df = pd.read_excel(xlsx)
# 定义拼接函数,并对字段进行去重
def concat_func(row):
return pd.Series({
'小区名称': ';'.join(row['小区名称'].unique()),
'5G CGI': ';'.join(row['5G CGI'].unique())
})
result = df.groupby(df['场景实例']).apply(lambda row: concat_func(row)).reset_index()
print(result)
result.to_excel(file + '/test.xlsx')