繁体   English   中英

当同一行中的另一列为NaN时,如何从熊猫数据框中选择特定的列值?

[英]How to select a particular column value from a pandas dataframe when another column in the same row is NaN?

我是熊猫的新手,我正在尝试做一个简单的操作。 我正在尝试进行比较,并在满足条件时从列中选择一些值。 但是我不知道如何在熊猫中给出这些条件。 使用列表非常简单,但在数据框中对我来说是新的。

代码示例如下:

import pandas as pd

df = pd.DataFrame({'Student_Subjects_Initial': ['A','B','C','D'],
                    'Student_Marks_Initial': [10,23,3,45],
                    'Student_Subjects_Final': ['A',np.nan,'C','D'],
                    'Student_Marks_Final': [10,23,3,np.nan]})

这将在df给我以下内容:

 Student_Subjects_Initial   Student_Marks_Initial   Student_Subjects_Final  Student_Marks_Final
0   A                           10                      A                       10.0
1   B                           23                      nan                     23.0
2   C                           3                       C                       3.0
3   D                           45                      D                       nan

我想做的是从Student_Subjects_Initial中选择值,其中Student_Subjects_Finalnan 因此,我的输出应该只是:

Mismatches_Student_Subject_Initial:
B

但是我无法全神贯注地为熊猫数据框编写条件。

有人可以帮忙吗? 提前致谢。

df[df.Student_Subjects_Final.isnull()].Student_Subjects_Initial.to_string(index=False)

或使用loc

df.loc[df['Student_Subjects_Final'].isnull()].Student_Subjects_Initial.to_string(index=False)

这可以通过过滤具有所需值的行来简单地实现。

df = df[df['Student_Subjects_Final'].isnull()]
print(df.Student_Marks_Initial)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM