python-3.x - pandas.series.split(' ',expand =True) 带列名
问题描述
我有一个带有两个字符串列的 Pandas 数据框,我想在空间上进行拆分,如下所示:
df =
A B
0.1 0.5 0.01 ... 0.3 0.1 0.4 ...
我想拆分这两个列并为尽可能多的值形成新列,这是拆分的结果。
所以,结果:
df =
A1 A2. A3 ... B1 B2 B3
0.1 0.5 0.01 ... 0.3 0.1 0.4
目前,我正在做:
df = df.join(df['A'].str.split(' ', expand = True)
df = df.join(df['B'].str.split(' ', expand = True)
但是,我收到以下错误:
columns overlap but no suffix specified
这是因为我猜第一个和第二个拆分重叠的列名?
所以,我的问题是如何通过为多个拆分提供列名或后缀来拆分多个列?
解决方案
按拆分列用于DataFrame.add_prefix
列名称:
df = df.join(df['A'].str.split(expand = True).add_prefix('A'))
df = df.join(df['B'].str.split(expand = True).add_prefix('B'))
print (df)
A B A0 A1 A2 B0 B1 B2
0 0.1 0.5 0.01 0.3 0.1 0.4 0.1 0.5 0.01 0.3 0.1 0.4
另一个想法是使用列表理解:
cols = ['A','B']
df1 = pd.concat([df[c].str.split(expand=True).add_prefix(c) for c in cols], axis=1)
print (df1)
A0 A1 A2 B0 B1 B2
0 0.1 0.5 0.01 0.3 0.1 0.4
并添加所有原始列:
df = df.join(df1)
推荐阅读
- php - Wordpress 将 php 和 html 模板转换为简码
- powerpoint - 更改布局时如何防止对象/文本改变颜色?
- javascript - 关于 Toggle with same Class Javascript No jQuery
- html -
HTML/CSS - 即使有标签也能保持元素在同一行 - discord - Discord.js Bot -- 如何检查每一天是哪一天
- google-bigquery - BigQuery 标准 sql - 不匹配正则表达式
- c# - 如何使用 C# MsgPack 反序列化 [[doubles], [ints]] 数组?
- java - AsynTask 永远不会在 IntentService 中运行
- sql - 在同一个表上具有多个连接的 Oracle 复杂查询
- c# - 将 rgb 字符串转换为 Color32