我有一个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
答案 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