iT邦幫忙

0

Python 回傳Function迴圈內判斷式的值

KL 2021-07-12 11:40:511078 瀏覽
  • 分享至 

  • xImage

我是Python新手,抱歉這個問題可能過於簡單,但摸索了幾個小時還是達不到想要的成果。
想請問懂Python的大大幫忙回答。

這是我的dataframe:
https://ithelp.ithome.com.tw/upload/images/20210712/20139417PgpCXq34f6.png

問題(1):
寫了一個Function想要回傳一個list,把符合條件的Wafer列出來,這是我的Code:
https://ithelp.ithome.com.tw/upload/images/20210712/20139417dAIwhehcjE.png

預期能夠回傳如以下的list,在JupytorNoteBook可以顯示,然而print的結果在圖片最底下卻出現None。請問怎麼解決回傳list的問題?
https://ithelp.ithome.com.tw/upload/images/20210712/20139417Z5fB0xF39x.png

問題(2):
我的這個Function def check_df_col,要怎麼動態的讀取colume的header? 而不是一個Bin一個Bin指定。 例如我的df3並沒有Bin column 2 或 3, 此時我的check_df_col會出錯,有什麼方式能改寫這個判斷回圈?

謝謝大大指教!

看更多先前的討論...收起先前的討論...
程式碼要會貼, 增加回答者的便利性.
froce iT邦大師 1 級 ‧ 2021-07-12 13:05:24 檢舉
https://leemeng.tw/practical-pandas-tutorial-for-aspiring-data-scientists.html#%E5%8F%96%E5%BE%97%E6%83%B3%E8%A6%81%E9%97%9C%E6%B3%A8%E7%9A%84%E6%95%B8%E6%93%9A_1

你都用pandas了,不要用for一個一個去篩...
@froce 大大, 小弟有個疑問,pandas的搜原理與for迴圈有異嗎?
是功能相同但效能會更好,或者是功能效能都相同但語法上會更乾淨?
froce iT邦大師 1 級 ‧ 2021-07-12 14:07:43 檢舉
功能更強大,效率更好。
那在請教大大,例如我有10筆資料,用pandas做條件篩選,是不是一定會比對全部的資料?
有辦法中止嗎?
例如我可能已知個數有3個,當比對到三個的時候跳出該循環
感謝大大不吝指教
froce iT邦大師 1 級 ‧ 2021-07-12 14:35:23 檢舉
只要3筆你可以用slice,不需要這樣搞...
當然3筆的話可能全跑完是比跑for迴圈慢。

pandas底層是調C lib來跑,並且用陣列運算,跑大量資料會比python迴圈快很多
了解! 感謝大大!!
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

1
darrenchen2020
iT邦新手 4 級 ‧ 2021-07-12 11:58:27
最佳解答

問題1: 你在function中沒有存下這些內容,並且你沒有回傳,如下例子:


def testList(arr):
    resultArr = []
    for i in arr:
        if i > 10:
            print('符合內容')
            resultArr.append(i) # 此處加入內容

    return resultArr # 回傳!!

checkArr = [3, 11, 9, 20, 100]
print(testList(checkArr))

0

我要發表回答

立即登入回答