python:如何拆分列并向新列添加最大元素?
我想拆分数据帧的一列,并将maximun值添加到一个新列中python:如何拆分列并向新列添加最大元素?,python,pandas,dataframe,Python,Pandas,Dataframe,我想拆分数据帧的一列,并将maximun值添加到一个新列中 import pandas as pd import numpy as np df=pd.DataFrame({'a':['1,2',3,-1,'8,9,1']}) 输出: a 0 1,2 1 3 2 -1 3 8,9,1 应为: a maxA 0 1,2 2 1 3 3 2 -1 -1 3 8,9,1 9 如何解决它,
import pandas as pd
import numpy as np
df=pd.DataFrame({'a':['1,2',3,-1,'8,9,1']})
输出:
a
0 1,2
1 3
2 -1
3 8,9,1
应为:
a maxA
0 1,2 2
1 3 3
2 -1 -1
3 8,9,1 9
如何解决它,请?没有熊猫,只有普通的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]]
我必须假设你是指最大整数值
str
和int
。因此,从将所有内容转换为字符串开始int
作为键来查找逗号分隔字符串的最大值
注意标记为4的行
21111
返回的最大值为111
安装程序
如果OP查找最大整数值,则这是不准确的。当最大值超过111时,它将返回21。
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
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
df=pd.DataFrame({'a':['1,2',3,-1,'8,9,1','21,111']})