gpt4 book ai didi

python - Pandas - 高效的元素比较

转载 作者:行者123 更新时间:2023-12-01 03:35:06 25 4
gpt4 key购买 nike

我正在使用一个包含多个列的大型多索引数据帧results_matrix。我需要访问 Results1Results2 列的每个元素,并根据存储在 Indicator 列中的指示符变量选择其中一个元素> 数据框。

目前,我正在 for 循环中访问每个元素 - 然而,这会大大增加程序的计算时间。有没有办法更有效地做到这一点?

import pandas as pd
import numpy as np

selected_results = pd.Series(np.nan)
# Used to iterate through the rows of the DataFrame
i = 0
for items in results_matrix['Indicator']:
if results_matrix.iloc[i]['Indicator'] == 1:
selected_results[i] = results_matrix.iloc[i]['Results1']
else:
selected_results[i] = results_matrix.iloc[i]['Results2']
i += 1

results_matrix['SelectedResults'] = selected_results.values

最佳答案

我认为你需要numpy.where :

results_matrix['SelectedResults'] = np.where(results_matrix['Indicator'] == 1, 
results_matrix['Results1'],
results_matrix['Results2'])

示例:

results_matrix = pd.DataFrame({'Indicator':[1,2,3],
'Results1':[4,5,6],
'Results2':[7,8,9]})

print (results_matrix)
Indicator Results1 Results2
0 1 4 7
1 2 5 8
2 3 6 9

results_matrix['SelectedResults'] = np.where(results_matrix['Indicator'] == 1,
results_matrix['Results1'],
results_matrix['Results2'])

print (results_matrix)
Indicator Results1 Results2 SelectedResults
0 1 4 7 4
1 2 5 8 8
2 3 6 9 9

关于python - Pandas - 高效的元素比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40454720/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com