我想拆分数据框的一列,然后将maximun值添加到新列中。
(format "%,05.2f" (BigDecimal. "9999999999999999.12")) => "9,999,999,999,999,999.12"
(format "%,05.2f" (bigdec "9999999999999999.12")) => "9,999,999,999,999,999.12"
import pandas as pd
import numpy as np
df=pd.DataFrame({'a':['1,2',3,-1,'8,9,1']})
Output:
a
0 1,2
1 3
2 -1
3 8,9,1
Expected:
请问如何解决?
答案 0 :(得分:1)
df['maxA'] = df['a'].apply(lambda x:max(str(x).split(',')))
df
a maxA
0 1,2 2
1 3 3
2 -1 -1
3 8,9,1 9
答案 1 :(得分:1)
我必须假设你的意思是最大整数值。
str
和int
类型。因此,首先将所有内容转换为字符串。int
作为key
df.assign(
maxA=
df['a'].astype(str).apply(lambda x: max(x.split(','), key=int)).astype(int)
)
a maxA
0 1,2 2
1 3 3
2 -1 -1
3 8,9,1 9
4 21,111 111
记下标记为4的行。21,111
最多返回111
df=pd.DataFrame({'a':['1,2',3,-1,'8,9,1','21,111']})
答案 2 :(得分:0)
没有熊猫,只是普通的python:
>>> foo = [[1,2],[3],[-1],[8,9,1]]
>>> [[x, max(x)] for x in foo]
[[[1, 2], 2], [[3], 3], [[-1], -1], [[8, 9, 1], 9]]