Mysql怎么实现多行转一行

这篇文章主要介绍“Mysql怎么实现多行转一行”,在日常操作中,相信很多人在Mysql怎么实现多行转一行问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Mysql怎么实现多行转一行”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

import pandas as pd
df = pd.read_excel('学习多行字符串分组为一行.xlsx',)

Mysql怎么实现多行转一行

python 法一 合并为列表

re =df.groupby(['公司','负责人'])['手机号'].apply(list).reset_index()
##或者 pd.DataFrame(df.groupby(['公司','负责人'])['手机号'].apply(list))
re

Mysql怎么实现多行转一行

python 法二 apply字符串平均
#df.groupby(['公司','负责人'])['手机号'].apply(lambda x: ''.join(x.to_string(index=False))).str.replace('(\\n)', '').reset_index()
df['手机号']= df['手机号'].astype(str)
df.groupby(['公司','负责人'])['手机号'].apply(lambda x: ','.join(x)).reset_index()

Mysql怎么实现多行转一行

Mysql 方法 :group_concat()

保存到数据库

import time
import requests
import json
import os
import pandas as pd
import warnings
import  arrow
from sqlalchemy import create_engine
import sys
from sqlalchemy import text
if sys.version_info.major<3:
   reload(sys)
   sys.setdefaultencoding("utf-8")
warnings.filterwarnings("ignore")
engine = create_engine('mysql+pymysql://账户名:密码@IP d地址/xxxxx?charset=utf8')
df.to_sql(name='学习字符串分组合并', con=engine, chunksize=1000, if_exists='append', index=None)

sql_1 = '''
select 公司 ,负责人,
GROUP_CONCAT(手机号 order BY '公司' DESC)
as 手机号
from `学习字符串分组合并`
GROUP BY 公司 ,负责人
;
'''
df_stu = pd.read_sql_query(text(sql_1), engine)
df_stu

Mysql怎么实现多行转一行

到此,关于“Mysql怎么实现多行转一行”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!