在柱risklevels我想用1替換小,中,用5和高配15. 我嘗試:大熊貓替換多個值的一列
dfm.replace({'risk':{'Small': '1'}},{'risk':{'Medium': '5'}},{'risk':{'High': '15'}})
但只有培養基替換。 有什麼不對?
在柱risklevels我想用1替換小,中,用5和高配15. 我嘗試:大熊貓替換多個值的一列
dfm.replace({'risk':{'Small': '1'}},{'risk':{'Medium': '5'}},{'risk':{'High': '15'}})
但只有培養基替換。 有什麼不對?
你可以定義一個字典,並呼籲map
In [256]:
df = pd.DataFrame({'a':['Small', 'Medium', 'High']})
df
Out[256]:
a
0 Small
1 Medium
2 High
[3 rows x 1 columns]
In [258]:
vals_to_replace = {'Small':'1', 'Medium':'5', 'High':'15'}
df['a'] = df['a'].map(vals_to_replace)
df
Out[258]:
a
0 1
1 5
2 15
[3 rows x 1 columns]
In [279]:
val1 = [1,5,15]
df['risk'].update(pd.Series(val1))
df
Out[279]:
risk
0 1
1 5
2 15
[3 rows x 1 columns]
你替換格式是關閉
In [21]: df = pd.DataFrame({'a':['Small', 'Medium', 'High']})
In [22]: df
Out[22]:
a
0 Small
1 Medium
2 High
[3 rows x 1 columns]
In [23]: df.replace({'a' : { 'Medium' : 2, 'Small' : 1, 'High' : 3 }})
Out[23]:
a
0 1
1 2
2 3
[3 rows x 1 columns]
我不確定'替換'格式行有什麼問題,所以我建議使用'map'來代替。用於發現OP錯誤的+1 – EdChum
In [123]: import pandas as pd
In [124]: state_df = pd.DataFrame({'state':['Small', 'Medium', 'High', 'Small', 'High']})
In [125]: state_df
Out[125]:
state
0 Small
1 Medium
2 High
3 Small
4 High
In [126]: replace_values = {'Small' : 1, 'Medium' : 2, 'High' : 3 }
In [127]: state_df = state_df.replace({"state": replace_values})
In [128]: state_df
Out[128]:
state
0 1
1 2
2 3
3 1
4 3
字符串替換爲新的串每串(小,中,高)( 1,5,15)\
如果dfm是數據框名稱,則列是列名稱。
dfm.column = dfm.column.str.replace('Small', '1')
dfm.column = dfm.column.str.replace('Medium', '5')
dfm.column = dfm.column.str.replace('High', '15')
使用''update''! – Jeff
@Jeff不熟悉那種方法,我正確使用它嗎? – EdChum
是的,這是正確的(但我意識到問題是,OP替換格式是錯誤的) – Jeff