मेरे पास एक सीएसवी है जिसमें 3 कॉलम, count_id, AMV और समय शामिल है।पांडा डेटा फ्रेम - लैम्ब्डा कैलकुलेशन और न्यूनतम मूल्य प्रति श्रृंखला
मैं पांडा का उपयोग कर रहा हूं और इसे डेटा फ्रेम के रूप में पढ़ा है।
results= pd.read_csv('./output.csv')
सबसे पहले, मैं पहले डेटा फ्रेम को count_id के लिए सॉर्ट कर रहा हूं और फिर एएमवी के लिए।
results_sorted = results.sort_index(by=['count_id','AMV'], ascending=[True, True])
इससे
count_id AMV Hour
0 16012E 4004 14
1 16012E 4026 12
2 16012E 4099 15
3 16012E 4167 11
4 16012E 4239 10
5 16012E 4324 13
6 16012E 4941 16
7 16012E 5088 17
8 16012E 5283 9
9 16012E 5620 8
10 16012E 5946 18
11 16012E 6146 7
12 16012W 3622 10
13 16012W 3904 12
14 16012W 3979 11
15 16012W 4076 9
16 16012W 4189 13
17 16012W 4870 14
18 16012W 4899 18
19 16012W 5107 15
20 16012W 5659 8
21 16012W 6325 7
22 16012W 6460 17
23 16012W 6500 16
मैं अब इतना है कि मैं अंत में एक ही भूखंड पर यह प्लॉट कर सकते हैं डेटा के बारे में कुछ सामान्य प्रदर्शन करने के लिए चाहते हैं। मैं जो करना चाहता हूं वह एएमवी प्रति श्रृंखला (count_id) के लिए न्यूनतम मान पाता है और फिर दिए गए एएमवी से इस न्यूनतम मान को घटाता है। यह मुझे एक नया कॉलम AMV_norm देगा।
कैसा दिखेगा कौन सा:
count_id AMV Hour AMV_norm
0 16012E 4004 14 0
1 16012E 4026 12 22
2 16012E 4099 15 95
3 16012E 4167 11 163
4 16012E 4239 10 235
5 16012E 4324 13 320
6 16012E 4941 16 937
7 16012E 5088 17 1084
8 16012E 5283 9 1279
9 16012E 5620 8 1616
10 16012E 5946 18 1942
11 16012E 6146 7 2142
12 16012W 3622 10 0
13 16012W 3904 12 282
14 16012W 3979 11 357
15 16012W 4076 9 454
16 16012W 4189 13 567
17 16012W 4870 14 1248
18 16012W 4899 18 1277
19 16012W 5107 15 1485
20 16012W 5659 8 2037
21 16012W 6325 7 2703
22 16012W 6460 17 2838
23 16012W 6500 16 2878
मैं समारोह श्रृंखला प्रति न्यूनतम AMV मूल्य और नहीं AMV समग्र के न्यूनतम मूल्य पता चलता है कि कैसे परिभाषित करते हैं? यह इस तरह कुछ दिखाई देगा:
def minimum_series_value(AMV):
return AMV.argmin()
मुझे फिर एक नया कॉलम बनाने और उस पंक्ति को एक लैम्ब्डा फ़ंक्शन का उपयोग करने की आवश्यकता होगी। मैं जानता हूँ कि यह कुछ इस तरह दिखेगा:
results_sorted['AMV_norm'] = results_sorted.apply(lambda row:results_sorted(row['AMV']))
धन्यवाद;) बहुत स्पष्ट और सरल – LearningSlowly