Pandas只保留两列

时间:2016-09-26 19:53:35

标签: pandas dataframe

我有一个DataFrame,其索引名为SubjectID两列,带有整数值。我想只保留Value 1列和Value 2列中包含值的主题,并删除只有一个值的主题。

以下是我的数据框的示例:

SubjectID    Value1    Value2
B1            1.57      1.75
B2            N/A       1.56

所以我只想保留第一行。这是我到目前为止编写的代码:

df_to_add = []
for sub in df.index:
    values = df.loc[df.index]['Value1']['Value2']
    if type(values) is pd.Series: # check that subject had multiple values, don't want otherwise
        array = values.values
        if "'Value1'" in scans_array and "'Value2'" in array:
            df_to_add.append(df.loc[df.index])
    else:
        pass

1 个答案:

答案 0 :(得分:2)

假设您的N/A是实际NaN,您只需.dropna()您的DataFrame:

import pandas as pd

df = pd.DataFrame({'SubjectID': ['B1', 'B2'],
                   'Value1': [1.57, float('nan')],
                   'Value2': [1.75, 1.56]})
df = df.set_index('SubjectID')

print(df)
#            Value1  Value2
# SubjectID                
# B1           1.57    1.75
# B2            NaN    1.56

print(df.dropna())
#            Value1  Value2
# SubjectID                
# B1           1.57    1.75