if用于Python中熊猫数据帧的语句
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了if用于Python中熊猫数据帧的语句,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1923字,纯文字阅读大概需要3分钟。
内容图文
![if用于Python中熊猫数据帧的语句](/upload/InfoBanner/zyjiaocheng/827/8d7da7fa27634f57b0a96e008e644732.jpg)
我有一个如下所示的数据框:
timestamp 0 1 2 3
2013-04-17 05:00:00 4.335212 2655.140854 2655.140854 2655.140854
2013-04-17 05:10:00 2.224966 2655.140854 2655.140854 2655.140854
2013-04-17 05:20:00 2.409150 2655.140854 2655.140854 2655.140854
2013-04-17 05:30:00 2655.140854 2655.140854 2655.140854 2655.140854
我需要对数据框中的每个值强加一个if语句标准,我尝试过使用:
dirt = dirt.astype(float)
for ind, i in enumerate(dirt):
if i < 0:
dirt[ind] = i + 360
if i > 360:
dirt[ind] = i - 360
但是,任何值都不会发生加法和减法.有任何想法吗?
解决方法:
您应该使用.iterrows()而不是枚举(df).枚举(df)时,只需获取不符合条件的列名. iterrows()每次迭代都返回索引和行(作为pandas.Series).
但是根据您的要求,您可以迭代df.columns并以矢量化方式为每列执行所需操作.示例 –
for col in df.columns:
df.loc[df[col] < 0,col] += 360
df.loc[df[col] > 360,col] -= 360
我使用列而不是行,假设列的数量远小于行数,因此我们将以更少的迭代次数进行实际循环(并且同时使用向量化的加法来获取更多数据).
演示 –
In [128]: df
Out[128]:
0 1 2 3
timestamp
2013-04-17 05:00:00 4.335212 2655.140854 2655.140854 2655.140854
2013-04-17 05:10:00 2.224966 2655.140854 2655.140854 2655.140854
2013-04-17 05:20:00 2.409150 2655.140854 2655.140854 2655.140854
2013-04-17 05:30:00 2655.140854 2655.140854 2655.140854 2655.140854
In [134]: for col in df.columns:
.....: df.loc[df[col] < 0,col] += 360
.....: df.loc[df[col] > 360,col] -= 360
.....:
In [135]: df
Out[135]:
0 1 2 3
timestamp
2013-04-17 05:00:00 4.335212 2295.140854 2295.140854 2295.140854
2013-04-17 05:10:00 2.224966 2295.140854 2295.140854 2295.140854
2013-04-17 05:20:00 2.409150 2295.140854 2295.140854 2295.140854
2013-04-17 05:30:00 2295.140854 2295.140854 2295.140854 2295.140854
内容总结
以上是互联网集市为您收集整理的if用于Python中熊猫数据帧的语句全部内容,希望文章能够帮你解决if用于Python中熊猫数据帧的语句所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。