[英]Pandas dataframe replace column values
我有一個 pandas 數據框,我需要替換列值。 所以我嘗試了以下但沒有按預期工作:
dict_by_nationality = {
250:0, #'Some-Nation locality',
260:0, #'Some-Nation locality'
270:0, #'Some-Nation locality'
280:0, #'Some-Nation locality'
290:0, #'Some-Nation locality'
440:0, #'Some-Nation locality'
450:0, #'Some-Nation locality'
460:0, #'Some-Nation locality'
310:0, #'Other-Nation locality'
510:2, #'Other place',
520:2, #'Other place',
530:2, #'Other place',
}
# dat['my column'].apply(dict_by_nationality.get)
# dat['my column'].map(dict_by_nationality).fillna(dat['my column'])
dat['my column'].replace({310: 0}, inplace=True)
print(dat.head())
獲取無值!
我意識到在同一個 dataframe 上進行替換會覆蓋它,需要將其保存到另一個變量然后進行替換。
嘗試使用以下命令( df[col].str.strip().str.replace()
),因為這將處理 dataframe 中有未識別空格的情況。
dat['my column'].str.strip().str.replace('310', '0')
我認為您注釋掉的一行應該可以正常工作。 使用我為此目的制作的虛擬數據嘗試以下操作。
建議的解決方案
df[col].map(dictionary).fillna(df[col])
df = pd.DataFrame({'a': list('abcde'), 'b': list('abacd')})
df.a.map({'a': 'A', 'b': 'B'}).fillna(df.a)
Output :
0 A
1 B
2 c
3 d
4 e
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.