Pandas国际单项体育联合会声明

2024-09-28 22:24:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我想使用Pandas自动化数据验证过程。这包括两个步骤:

第一个是确保每一行都有一个有效的列值。例如,我想检查“Independent”列中该行是否有1或0,如果没有则抛出一个标志。因此,如果Independent==1或Independent==0 IndepFlag=0,则IndepFlag=1(对于该行)。基于这个标志,我想将该行的ID打印到excel文件中。在

第二种方法是执行类似的操作,但是要检查多个列(例如,if Independent==1和Column2>;1column2flag=1。在

我的问题是,如何检查有效值,然后从具有行ID的列中捕获并打印,以及如何对多个列执行此操作?在


Tags: 文件数据方法gtidpandasif过程
1条回答
网友
1楼 · 发布于 2024-09-28 22:24:01

您可以使用where:http://pandas.pydata.org/pandas-docs/dev/indexing.html#the-where-method-and-masking完成此操作

In [22]: df = pd.DataFrame(dict(Independent=[-1,0,1,4,0], Column2=[0,1,0,2,2]))

In [23]: df
Out[23]:
   Column2  Independent
0        0           -1
1        1            0
2        0            1
3        2            4
4        2            0

where将不符合条件的值转换为nan。您可以使用notnull()获得一个布尔序列,如果您喜欢使用astype,可以将其更改为int:

^{pr2}$

然后,您可以只选择感兴趣的行并将其写入excel文件:

In [26]: flagged = df[df.IndepFlag == 1]

In [27]: flagged
Out[27]:
   Column2  Independent  IndepFlag
1        1            0          1
2        0            1          1
4        2            0          1

In [28]: flagged.to_excel("flagged.xlsx")

使用多个列并不是很不同,只需将where改为使用(df.Independent == 0) & (df.Column2 > 1)。在

相关问题 更多 >