3 回答

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超10個(gè)贊
您可以使用 binning 過程pd.cut()
。
import pandas as pd a = pd.Series(range(1,100)) pd.cut(a, bins=[1,11,21,31,41,51,61,71,81,91,101], labels=False, right=False)

TA貢獻(xiàn)1852條經(jīng)驗(yàn) 獲得超1個(gè)贊
您可以像這樣在所有列上應(yīng)用:
df.apply(lambda x: x-1 // 10)
這是調(diào)用底數(shù)除法:2.9 變?yōu)?2,1.8 變?yōu)?1 等。由于在您的情況下 30 應(yīng)變?yōu)?2,因此我們在應(yīng)用底數(shù)除法之前從值中減去 1。

TA貢獻(xiàn)1883條經(jīng)驗(yàn) 獲得超3個(gè)贊
您可以創(chuàng)建一個(gè)函數(shù)來執(zhí)行操作并將其作為 .apply() 的參數(shù)傳遞。例如:
def function_name(rows):
if row > 0 and row <= 10:
return 0
elif othercases ...
for cols in df.columns: # loop over all columns in your dataframe
df[cols] = df[cols].apply(function_name)
添加回答
舉報(bào)