2
我有一項任務是根據其他數據框內的條件創建數據框。根據條件創建熊貓數據框的更好方法
我一直這樣做了大約一週的時間,但我很好奇,如果有更好的方法。我偶然發現了This Example。現在我知道他正在使用的示例是基於條件創建單獨的列,但它讓我想知道我的代碼是否可以改進。
下面是代碼的鏈接縮短版的易用性:
import pandas as pd
import numpy as np
raw_data = {'student_name': ['Miller', 'Jacobson', 'Ali', 'Milner', 'Cooze', 'Jacon', 'Ryaner', 'Sone', 'Sloan', 'Piger', 'Riani', 'Ali'],
'test_score': [76, 88, 84, 67, 53, 96, 64, 91, 77, 73, 52, np.NaN]}
df = pd.DataFrame(raw_data, columns = ['student_name', 'test_score'])
print(df)
grades = []
for row in df['test_score']:
if row > 59:
grades.append('Pass')
else:
grades.append('fail')
df['grades'] = grades
print(df)
student_name test_score grades
0 Miller 76.0 Pass
1 Jacobson 88.0 Pass
2 Ali 84.0 Pass
3 Milner 67.0 Pass
4 Cooze 53.0 fail
5 Jacon 96.0 Pass
6 Ryaner 64.0 Pass
7 Sone 91.0 Pass
8 Sloan 77.0 Pass
9 Piger 73.0 Pass
10 Riani 52.0 fail
11 Ali NaN fail
與上面的例子一起去,如果我不想做一個「等級」欄,而是想要一個所有通過的人的數據框。我個人這樣做:
pass_df = df[df['test_score'] > 59]
print(pass_df)
是否有這樣做的更好方式?
我沒有看到它了,但你的使用.copy()的點是非常有幫助。感謝您爲我清除這個 – MattR
@MattR是的,我並不覺得這是明確的必要,但我有這種感覺,你可能試圖修改結果......很高興我能幫上忙! – miradulo