您现在的位置是:亿华云 > 人工智能
Python中实现“一行拆多行“和“多行并一行“,你会吗?
亿华云2025-10-08 23:08:34【人工智能】5人已围观
简介粉丝提问今天粉丝提了下面这样一个问题,其中一个是"一行拆多行",另外一个是"多行并一行",貌似群友用power query已经解决了。但是基于Python怎么做呢?接着往下看。一行拆多行上面这个问题我
粉丝提问
今天粉丝提了下面这样一个问题,你会吗其中一个是中实"一行拆多行",另外一个是现行行和"多行并一行",貌似群友用power query已经解决了。拆多但是多行基于Python怎么做呢?接着往下看。
一行拆多行
上面这个问题我会提供两个思路,并行供大家选择,你会吗当然肯定是中实越简单得越好。每种方法中都有一些好用的现行行和技巧,希望大家能够好好学习。拆多
1)方法一
下方代码中有很多重要的高防服务器多行知识点,需要我们下去好好学习一下,并行我只提供解题思路,你会吗关于每个知识点怎么用,中实希望大家下去自行研究学习。现行行和
Pandas.melt()函数的用法; Series.str.split("/",expand=True)中,expand=True参数的用法; Series.sort_values()对文本进行排序; Python中enumerate()函数的用法; import pandas as pd # 读取数据 df = pd.read_excel("test1.xlsx",sheet_name="Sheet1") # 将一列炸裂成多列 df[["类型1","类型2","类型3"]] = df["电影类型"].str.split("/",expand=True) # 选取想要的列 df_final = df[["电影名","类型1","类型2","类型3"]] # 将行转列 df_final = df_final.melt(id_vars=["电影名"],value_name="类型") # 对“电影名”字段进行排序 df_final = df_final[["电影名","类型"]] df_final.sort_values(by="电影名",inplace=True) # 删除“类型==None”的行 for index,value in enumerate(df_final["类型"]): if value == None: df_final.drop(df_final.index[index],inplace=True) df_final结果如下:
2)方法二
上述方法确实复杂,由于我的Pandas版本是0.23.4,网站模板因此无法使用explode()方法,进行炸裂操作。在pandas0.25版本的时候,DataFrame中才新增了一个explode()方法,专门用来将一行变多行。
Pandas.explode()函数的用法; import pandas as pd # 读取数据 df = pd.read_excel("test1.xlsx",sheet_name="Sheet1") # 将一行拆分成列表形式,注意:这里不需要使用expand=True参数 df["type"] = df["电影类型"].str.split("/") # 直接炸裂指定列 df.explode("type")结果如下:
多行并一行这里没有使用什么特别的知识,好好的理解Pandas中分组聚合应用某个函数,即可轻松解决这个问题。
import pandas as pd # 读取数据 df = pd.read_excel("test1.xlsx",sheet_name="Sheet2") # 分组聚合,应用某个函数 def func(df): return ,.join(df.values) df = df.groupby(by=电影名).agg(func).reset_index() df结果如下:
很赞哦!(9981)
相关文章
- 2、根据用户基础选择访问提供程序。由于互联问题的存在,接入商的选择也非常重要,如果用户群主要在联通,尽量选择联通接入较好的接入商,如果用户群主要在电信,那么选择电信接入较好的接入商。如果用户组位于国家/地区,则选择更好的访问提供程序进行交互。
- 通过领域驱动建模来划分微服务,真正的难点究竟在哪里?
- 精准识别好域名,小聚教你高效挑选有价值的老域名
- 哪些因素会影响域名交易价格?价值高的域名一定是好域名吗?
- 5. 四种状态过后,域名管理机构释放域名给公众注册。
- Python远程连接服务器用它就够了
- 前端百题斩之从验证点到手撕 New 操作符
- 域名注册完成后,还需要做什么?
- 2. 不要花大价钱买域名,新手鉴别能力不足,容易投资失误。
- Redis 性能优化思路,写的非常好!