我有一個數據幀,看起來像這樣的數字內容:標識包含特定字符串的細胞並覆蓋使用Python
我的目標是,以確定每列的每個單元格,如果下面的字符串包含:'KSS'
,'ABC'
,'DEF'
,'ABC/DEF'
,'KSS/DEF'
接着我想替換具有以下值的內容:'KSS'
- > 100,'ABC'
- > 200,'DEF'
- > 300,'ABC/DEF'
- > 400,'KSS/DEF'
- > 500
輸出應該像這樣的:
注意:該算法應該是通用的和校驗每列,不僅數字3.爲了完整性,數據類型都是objects
。
到目前爲止,我的代碼行是這些,但我想他們是不完整的......
import pandas as pd
import numpy as np
df = pd.DataFrame([
['XYZ', 'BALSO', 'PISCO', 'KSS', 'Yes', 660, 'Cop'],
['XYZ', 'TONTO', 'LOLLO', '195', 500, 'Yes', 'nan'],
['XYZ', 'CALLO', 'WANDA', 'ABC/DEF', 'Yes', 500, 'nan'],
['XYZ', 'AZUNGO', 'FINGI', 'KSS/DEF', 'Yes', 500, 'nan']
])
df = pd.read_csv('prova.csv', sep=',', skiprows=0, header=None, low_memory=False)
df.str.replace('KSS|ABC|DEF','?')
在這裏,我們廢話downvoting .... –
着呢,因爲沒有寫代碼......我從.csv文件加載的一切!這個問題對每個人都是明確的,圖像有助於讓人理解......如果你不喜歡它是好的,那不是我的問題,但我看到一些更好的人更關心這個問題,而不是抱怨兩個人圖片... –
我認爲ayhan所說的是,你沒有發佈原始數據來重現你的df,如果你發佈了數據的文本,我們可以從剪貼板加載它並幫助你,但通過張貼圖像,你立即爲社區設置了一道屏障,幫助您。你應該考慮我們的觀點,如果你看到這個問題怎麼會試圖重現它?無論如何,如果你用你的查找值定義一個字典或系列,那麼你可以做'df ['3']。map(your_dict)',但是你需要過濾掉沒有匹配的行。 – EdChum