Python 使用lambda的数据帧内容子集使用pandas应用
我对python和pandas相当陌生,我正在尝试做以下工作: 这是我的数据集:Python 使用lambda的数据帧内容子集使用pandas应用,python,pandas,dataframe,lambda,apply,Python,Pandas,Dataframe,Lambda,Apply,我对python和pandas相当陌生,我正在尝试做以下工作: 这是我的数据集: df5 Out[52]: NAME 0 JIMMcdonald 1 TomDickson 2 SamHarper 我正在尝试使用lambda apply提取前三个字符 以下是我尝试过的: df5["FirstName"] = df5.apply(lambda x: x[0:3],axis=1) 结果如下: df5 Out[54]: NAME FirstNam
df5
Out[52]:
NAME
0 JIMMcdonald
1 TomDickson
2 SamHarper
我正在尝试使用lambda apply提取前三个字符
以下是我尝试过的:
df5["FirstName"] = df5.apply(lambda x: x[0:3],axis=1)
结果如下:
df5
Out[54]:
NAME FirstName
0 JIMMcdonald JIMMcdonald
1 TomDickson TomDickson
2 SamHarper SamHarper
我不明白它为什么不起作用。。有人能帮我吗
谢谢这是因为您正在使用的和您想要使用的之间存在差异。解决此问题的最简单方法是从数据帧中选择所需的系列,然后使用。应用于: 当前代码在每列上运行一次apply函数,在这种情况下,它将选择前三行。此固定代码对选定列中的每个值运行函数 更好的是,正如@Erfan在他的评论中指出的,像这样简单的单行字符串操作通常可以使用panda的.str来简化,它允许您以与操作单个字符串相同的方式操作整个字符串系列:
df5["FirstName"] = df5["NAME"].str[:3]
你不需要申请简单的操作,使用:df['NAME'].str[:3]可能重复的
df5["FirstName"] = df5["NAME"].str[:3]