[英]pandas.DataFrame.loc , Labeling data in new column
我有一個像這樣的熊貓數據框:
ranking
1 4.33
2 1.34
3 3.76
..
我想創建這個:
ranking label
1 4.33 2
2 1.34 0
3 3.76 1
..
因此,等級< 3.5
導致標簽為0
,等級在3.5
和4.25
之間導致標簽為1
,等級> 4.25
導致標簽為2
。
這是我到目前為止編寫的代碼:
df = pd.read_csv('./data/Step7_final.csv', index_col=False, encoding="ISO-8859-1")
df['label'] = df.ranking.where(df.ranking > 3.4999, 0)
df.loc[df.label > 3.4999 and < 4.2499, 'label'] = 1
df.loc[df.label > 4.2499, 'label'] = 2
我將標簽1分配給3.5到4.25之間的排名值的第三行不起作用...如何使它起作用?
你需要:
df['label'] = df.ranking.where(df.ranking > 3.4999, 0)
df.ix[(df.label > 3.4999) & (df.label < 4.2499), 'label'] = 1
df.ix[df.label > 4.2499, 'label'] = 2
print (df)
ranking label
1 4.33 2.0
2 1.34 0.0
3 3.76 1.0
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.