我遇到了一个关于按价值对我的特征进行排序的问题。我想看到我的图像,根据它们在 y 轴上的高度,条形变短。不幸的是,我的条形图看起来像这样,功能按字母顺序排序:
现在我正在运行以下代码:
unsorted_list = [(importance, feature) for feature, importance in
zip(features, importances)]
sorted_list = sorted(unsorted_list)
features_sorted = []
importance_sorted = []
for i in sorted_list:
features_sorted += [i[1]]
importance_sorted += [i[0]]
plt.title("Feature importance", fontsize=15)
plt.xlabel("Importance", fontsize=13)
plt.barh(features_sorted,importance_sorted, color="green", edgecolor='green')
# plt.savefig('importance_barh.png', dpi=100)
Run Code Online (Sandbox Code Playgroud)
这是通过那里的数据:
unsorted_list =
[('HR', 0.28804817462980353),
('BR', 0.04062328177704225),
('Posture', 0.09011618483921582),
('Activity', 0.0017821837085763366),
('PeakAccel', 0.002649111136700579),
('HRV', 0.13598729040097057),
('ROGState', 0.014534726412631642),
('ROGTime', 0.22986192060475388),
('VerticalMin', 0.016099772399198357),
('VerticalPeak', 0.012697214182994502),
('LateralMin', 0.029479112475744584),
('LateralPeak', 0.022745210003295983),
('SagittalMin', 0.08653071485979484),
('SagittalPeak', 0.028845102569277088)]
sorted_list =
[(0.0017821837085763366, 'Activity'),
(0.002649111136700579, …Run Code Online (Sandbox Code Playgroud) 因此,使用pandas和python将csv文件作为数据帧,我希望尽可能高效地获取与另一个值在同一行中的值.
为了澄清这一点,我将举例说明以下csv:
STAID SOUID DATE TX Q_TX
162 100522 19010101 -31 0
162 100522 19010102 -13 0
162 100522 19010103 -5 0
162 100522 19010104 -10 0
162 100522 19010105 -18 0
Run Code Online (Sandbox Code Playgroud)
所以我要说实现以下代码
import pandas as pd
data = pd.read_csv("foo.csv")
max_val = data["TX"].max()
Run Code Online (Sandbox Code Playgroud)
Max_val现在将获得-5的值.问题是我现在想知道'DATE'中与max_val位于同一行的值,或者换句话说:'DATE'列中的值与找到的值共享相同的索引.我的目标值显然是19010104.只有使用熊猫才能做到这一点的最有效方法是什么?
更新:使用min_val加一点,显然应该是max_val而不是min_val.