python - 从一列拆分字符串并在python中创建一个新列
问题描述
我有一个数据-
data = [['0092', 'ab cd [1]'], ['887', 'ab ef [2]'], ['776', 'ab gh ab [3]'],
['33101', 'ab ij [4]'], ['0922', 'ab kl [5]']]
df = pd.DataFrame(data, columns = ('col_1', 'col_2'))
df
col_1 col_2
0092 ab cd [1]
887 ab ef [2]
776 ab gh ab [3]
33101 ab ij [4]
0922 ab kl [5]
我想拆分 col_2 并创建一个新列,其中“ab cd”是一个名称,1 是它的代码。
col_1 col_2 col_3
0092 ab cd 1
887 ab ef 2
776 ab gh ab 3
33101 ab ij 4
0922 ab kl 5
我已经尝试过了 -df['col_2'].str.split(" ", expand = True)
但它没有达到我的目的,因为它没有根据空间出现准确地拆分名称。所以我想把名字从开始的字母拆分到“[”,然后根据拆分创建一个新列。如果您有更好的建议(代码行更少),请帮我编写代码
解决方案
我们可以str.extract
在这里使用:
df["col_3"] = df["col_2"].str.extract(r'^.*\[(\d+)\]')
df["col_2"] = df["col_2"].str.extract(r'^(.*?)(?=\s*(?:\[\d+\]|$))')
推荐阅读
- google-cloud-platform - 谷歌云平台 Auto ML
- r - 如何使用包括ggplot2在内的应用函数组合多个R函数
- groovy - Apache Nifi 1.6:崩溃 Groovy 脚本
- android - 如何使用 StateListAnimator 在 Android 中为图像按钮的背景设置动画?
- deep-learning - 是否可以删除最古老的 DQN 体验
- android - 如何使用 Uri 获取铃声标题
- postgresql - 如何优化 PostgreSQL GIN 索引中的查询不起作用
- android - 为什么构建 APK 和签名 APK 中的 Settings.Secure.ANDROID_ID 不同?
- android - 如何解决深度链接启动应用程序 2 次?
- json - Swift 中的 JSON 解析——闭包之外的数据不可用