我有一个pandas列
currency |
---|
CNY |
人民币,印度卢比 |
INR |
简单。将内置max
与key=len
一起使用
df['currency'] = max(df['currency'], key=len)
currency
0 CNY,INR
1 CNY,INR
2 CNY,INR
查找长度最大的货币:
currency_with_maximum_length = df.currency[df.currency.str.len().idxmax()] # 'CNY,INR'
并将其分配给您的列:
df['currency'] = currency_with_maximum_length
输出:
currency
0 CNY,INR
1 CNY,INR
2 CNY,INR
您可以将str.len
与idxmax
:结合使用
df['currency'] = df.loc[df['currency'].str.len().idxmax(), 'currency']
输出:
currency
0 CNY,INR
1 CNY,INR
2 CNY,INR
这使您能够在需要时轻松地为每个组应用相同的逻辑:
g = df['currency'].str.len().groupby(df['group']).idxmax()
df['new_col'] = df['group'].map(g.map(df['currency']))
示例:
group currency new_col
0 A CNY CNY,INR
1 A CNY,INR CNY,INR
2 A INR CNY,INR
3 B XYZ WXYZ
4 B WXYZ WXYZ
5 B INR WXYZ