python – 反向中的Pandas分裂函数
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – 反向中的Pandas分裂函数,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2078字,纯文字阅读大概需要3分钟。
内容图文
![python – 反向中的Pandas分裂函数](/upload/InfoBanner/zyjiaocheng/697/4ee69af843564bbc8eefcb92bf9c4a6d.jpg)
我有一个Pandas Dataframe,其列如下所示:
Car_Make
0 2017 Abarth 124 Spider ManualConvertible
1 2017 Abarth 124 Spider AutoConvertible
2 2017 Abarth 124 Spider ManualConvertible
3 2017 Abarth 124 Spider AutoConvertible
4 2017 Abarth 595 ManualHatch
5 2017 Abarth 595 AutoHatch
三个问题:
1 How to save split data in panda in reverse order? – 这解决了我的问题,但我不知道它是如何或为什么有效 – 有人可以向我解释一下吗?我讨厌复制粘贴而不理解为什么它有效
df['Car_Make'].apply(lambda x:pd.Series(x.split()[::-1]))
2我尝试使用用户定义的函数(我可以再次使用)复制它,但是它似乎不起作用(任何帮助理解为什么以及将Lambda函数转换为用户的正确方法 – 定义的功能
def f(x):
df[x] = pd.Series(x.split()[::-1])
return df
3有没有更好的方法将该列按空格分割?
我已经尝试使用Regex,但不能在所有行上使用,因为您可以看到第4行和第5行与上面略有不同.
任何帮助将不胜感激.
谢谢,
阿德里安
解决方法:
以下是您的三个问题:
1)为什么df [‘Car_Make’].apply(lambda x:pd.Series(x.split()[:: – 1]))工作?
分解:
> df [‘Car_Make’] – 包含您要操作的数据的列
> .apply() – 一个pandas DataFrame和Series方法,它将函数应用于DataFrame中的每一列或每一行,或者系列中的每一行.
> lambda x: – 将由.apply()方法应用于Series的每一行的函数. x表示记录对象,在您的情况下是包含Car_Make条目的字符串.
> pd.Series() – 这会将其中的值转换为pandas系列.
> x.split() – 如第3点所述,x是你的字符串对象,split()是一个字符串方法,当没有参数传递时,默认是按字符串拆分字符串并将每个拆分对象返回到名单.
> [:: – 1] – 一个方便的列表迭代器,用于反转列表,例如x.split()返回的列表.列表迭代的语法是[start_index:end_index:step].使用-1步骤向后遍历列表.
把它们放在一起,并且代码遍历df [‘Car_Make’]中的每个记录,拆分它们,反转拆分项的顺序,并将反转列表作为pandas Series对象返回.
2)使用定义的函数复制它.
你真的很接近,只是函数需要将行/记录作为其参数,并且需要在.apply()方法中调用.你想要做的是替换lambda x,而不是它的应用方式.
使用你目前所拥有的:
def f(x):
return pd.Series(x.split()[::-1])
df['Car_Make'].apply(f)
3)有更好的方法吗?
如果你想分割一个字符串,然后反转项目的顺序,不,这是一个很好的方法.如果你只想从右边开始分割字符串的某个部分,那么rsplit()是一个很好的方法.
内容总结
以上是互联网集市为您收集整理的python – 反向中的Pandas分裂函数全部内容,希望文章能够帮你解决python – 反向中的Pandas分裂函数所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。