假设数据框为df,要比较的两列分别为col1和col2,要提取的第三列为col3。
方法1:使用DataFrame.loc函数
可以使用DataFrame.loc函数来提取满足某些条件的行,并选择需要的列。下面的代码比较col1和col2列的值,当col1的值大于col2的值时,提取col3列的值。
extracted_data = df.loc[df['col1'] > df['col2'], 'col3']
方法2:使用DataFrame.apply函数
可以使用DataFrame.apply函数来遍历每一行,并针对每一行进行操作。下面的代码比较col1和col2列的值,当col1的值大于col2的值时,返回col3列的值。最后使用pd.concat函数将所有的结果合并成一个数据框。
import pandas as pd
def extract_data(row):
if row['col1'] > row['col2']:
return row['col3']
else:
return pd.np.nan
extracted_data = pd.concat([df.apply(extract_data, axis=1)])
使用第一种方法可能会更快,但是使用第二种方法可以根据需要返回更多的列。