[英]Pandas.DataFrame: efficient way to add a column "seconds since last event"
[英]Pandas.Dataframe: Is there an efficient way to translate multiple WHERE SQL statements?
所以我想翻译像
SELECT *
FROM MY_TABLE
WHERE MY_ATTRIBUTE IN (8945, 8899, 4501, 6874, 3256, 8881, 1017)
在python中使用Pandas数据框。
读此 ,这样做的方法是
mydataframe[mydataframe['myattribute'] == 8945 |
mydataframe['myattribute'] == 8899 |
mydataframe['myattribute'] == 4501 |
mydataframe['myattribute'] == 6874 |
mydataframe['myattribute'] == 3256 |
mydataframe['myattribute'] == 8881 |
mydataframe['myattribute'] == 1017]
这是很不美观的,随着属性长和值列表大,情况变得更糟。
有没有办法用较少的冗余代码正确地做到这一点?
就像是
mydataframe[mydataframe['myattribute'] in (8945, 8899, 4501, 6874, 3256, 8881, 1017)]
会很好,但是会引发以下错误:
ValueError:系列的真值不明确。 使用a.empty,a.bool(),a.item(),a.any()或a.all()。
使用Series
方法isin()
与list进行比较:
mydataframe[mydataframe['myattribute'].isin([8945, 8899, 4501, 6874, 3256, 8881, 1017])]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.