亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用循環將數據框中列中的每一行替換為它出現的實例

使用循環將數據框中列中的每一行替換為它出現的實例

慕尼黑5688855 2023-08-08 10:18:37
我的數據框中有一列稱為“數據”。我嘗試使用 For 循環將每個值替換為其出現的第一個實例的編號。例如BatchID   ->   BatchIDLot 11           1Lot 11           1Lot 11           1Lot 11           1Lot 12           2Lot 12           2Lot 13           3Lot 14           4Lot 14           4Lot 14           4這是我的代碼:unique_batches = ['Lot 11', 'Lot 12', 'Lot 13', 'Lot 14']for i in range(len(data['BatchID'])):    for batch in unique_batches:        if data['BatchID'][i][:6] == batch:            data['BatchID'][i] = unique_batches.index(batch) + 1這是我收到的錯誤:TypeError: 'int' object is not subscriptable---> 69         if data['BatchID'][i][:10] == batch:
查看完整描述

2 回答

?
神不在的星期二

TA貢獻1963條經驗 獲得超6個贊

這里不需要切片


batches = ['Lot 11', 'Lot 12', 'Lot 13', 'Lot 14']


這是精煉后的代碼


for i in range(len(df['BatchId'])):

    for batch in batches:

        if df["BatchId"][i]==batch:

            df["BatchId"][i] = batches.index(batch)+1


查看完整回答
反對 回復 2023-08-08
?
猛跑小豬

TA貢獻1858條經驗 獲得超8個贊

您也可以使用替換功能。


以下是如何執行此操作的示例:


import pandas as pd

df = pd.DataFrame({'BatchID':['Lot 11','Lot 11','Lot 11','Think1','Lot 12',

                              'Lot 12','Lot 13','Lot 14','Lot 14','Lot 14']})



df = df.replace(r'Lot 1','',regex=True)

print(df)

結果如下:


請注意,其中一個值是Think1。所以它沒有被更換,因為它不符合模式。


  BatchID

0       1

1       1

2       1

3  Think1

4       2

5       2

6       3

7       4

8       4

9       4


查看完整回答
反對 回復 2023-08-08
  • 2 回答
  • 0 關注
  • 146 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號