「python篩選條件」的推薦目錄:
- 關於python篩選條件 在 コバにゃんチャンネル Youtube 的最佳解答
- 關於python篩選條件 在 大象中醫 Youtube 的精選貼文
- 關於python篩選條件 在 大象中醫 Youtube 的最佳解答
- 關於python篩選條件 在 [問題] Pandas Series 條件-篩選-取代請益- 看板Python 的評價
- 關於python篩選條件 在 Python Pandas 資料分析- 篩選資料By 彭彭 - YouTube 的評價
- 關於python篩選條件 在 如何不用條件判斷式,快速篩選出欄位中多個特定值的資料 ... 的評價
- 關於python篩選條件 在 我想在pandas的DataFrame做多個條件的資料篩選 - YouTube 的評價
- 關於python篩選條件 在 6 資料處理與清洗| 資料科學與R語言 的評價
- 關於python篩選條件 在 python篩選條件的問題包括PTT、Dcard、Mobile01,我們都能 ... 的評價
- 關於python篩選條件 在 python篩選條件的問題包括PTT、Dcard、Mobile01,我們都能 ... 的評價
- 關於python篩選條件 在 python篩選條件的問題包括PTT、Dcard、Mobile01,我們都能 ... 的評價
- 關於python篩選條件 在 Pandas數據資料分析實戰(第三集) | 【Python自學聖經 的評價
- 關於python篩選條件 在 XIU2/CloudflareSpeedTest: 🌩「自选优选IP」测试Cloudflare ... 的評價
python篩選條件 在 大象中醫 Youtube 的精選貼文
python篩選條件 在 大象中醫 Youtube 的最佳解答
python篩選條件 在 Python Pandas 資料分析- 篩選資料By 彭彭 - YouTube 的推薦與評價
... 篩選條件 1.2 利用比較運算建立 篩選條件 1.3 篩選 資料2. DataFrame 2.1 直接建立布林值 篩選條件 2.2 在欄位上利用比較運算建立 篩選條件 2.3 篩選 資料。 3 ... ... <看更多>
python篩選條件 在 如何不用條件判斷式,快速篩選出欄位中多個特定值的資料 ... 的推薦與評價
Python #isin #DataFrame #pandas #資料科學 #datascience # Python 資料科學實作小技巧 #補根課程 「如何不用 條件 判斷式,快速 篩選 出欄位 ... ... <看更多>
python篩選條件 在 [問題] Pandas Series 條件-篩選-取代請益- 看板Python 的推薦與評價
大家好,
小弟python新手,最近練習pandas時面臨一個問題
懇請大家協助
假設我有一個共A B C D 四欄五列的dataframe 'df',
其中A欄為[20, 39, 41, 85, 11]的隨機數,
現在我想要將A欄中小於40的數+10,大於等於40的數-5,
(同時,所以最終39要變成49,而不是44)
請問該怎麼處理呢?
直覺地想到就是
if df['A'] > 40:
df['A] += 10
...
但很明顯series沒辦法這樣處理。
之前學到的方式,大多是使用新建df的方法處理
df2 = df[df['A'] > 40]
df2['A'] += 10
然而一來是這樣原來的df並沒有更動,而且一次只能用一個條件來篩選,頗為冗長
再來我也不會用新建的series來取代(畢竟長度不同,有這種方法嗎?)
懇請版上各位先進指教了,
該怎麼才能直接修改原來的df,
或是提點有甚麼方向可以去研究的,感謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.43.4.144 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1651060519.A.576.html
首先是自定義
def myAdd(x):
return x+10 if x<40 else x-5
df = df.assign(A = df.A.apply(myAdd))
print(df)
但我發現直接粗暴取代好像也可以?
df['A'] = df.A.apply(myAdd)
請問這樣會有甚麼差別嗎?
-----------------
再來是where
df['A'] = np.where(var1, df.A+10, df.A-5)
print(df)
原本嘗試用pd.df.where的,結果寫不出來Orz
df.where(df.A < 40, df-5, inplace = True)
這樣會連其他欄一起更改,但當我想限制只有A欄時
df.where(df.A < 40, df.A-5, axis = 0, inplace = True)
會把其他欄也改成跟A欄一樣Orz
e.g.
A B C A B C
0 43 17 79 >> 0 38 38 38
QQ...
-----------------
最後不論是用loc還是直接指定
var1 = df['A'] < 40
df['A'][var1] += 10
df['A'][~var1] -= 5
df['A1'] = df.A
df.loc[var1, 'A1'] += 10
df.loc[~var1, 'A1'] -= 5
都能達到目標,反而讓我有點好奇
會甚麼這樣分兩行來寫,新條件不會覆蓋到舊條件上呢?
(38最終會變48,而不是38>48>43這樣)
總之,感謝各位!
※ 編輯: god1230321 (59.124.123.10 臺灣), 04/28/2022 10:39:38
剛剛把var1拿掉直接換成df['A'] < 40
條件就會互相影響了,感謝說明
※ 編輯: god1230321 (59.124.123.10 臺灣), 04/28/2022 11:00:34
... <看更多>