在apply函数中访问索引

眼前多少难甘事,自古男儿当自强。这篇文章主要讲述在apply函数中访问索引相关的知识,希望能为你提供帮助。
早上好。
我有一点问题,我确信它有一个简单的解决方案,但我找不到它。
我有一个这样的数据帧:

df = numunit 010minutes 120seconds 230newtons 310seconds

并且,由于无关紧要的原因,我想重写num列,添加相应的单位,得到下一个结果:
df = numunit 0'10 minutes'minutes 1'20 seconds'seconds 2'30 newtons'newtons 3'10 seconds'seconds

我正在使用以下代码:
df.num = df.num.apply(lambda x: '{n} {u}'.format(n = x, u = unidecode(df.loc[df[df.num == x].index.values[0], 'unit'])))

问题出现在第一列中有2个或更多相等的值,比如第0行和第3行,所以由于...values[0],我错误的最终结果是:
df = numunit 0'10 minutes'minutes 1'20 seconds'seconds 2'30 newtons'newtons 3'10 minutes'seconds

【在apply函数中访问索引】非常感谢你提前。
答案在此处应用不是必需的,将列转换为字符串并与连接:
df['num'] = df['num'].astype(str) + ' ' + df['unit'] print (df) numunit 010 minutesminutes 120 secondsseconds 230 newtonsnewtons 310 secondsseconds

如果需要申请某些原因使用DataFrame.applyaxis=1进行行处理和使用标量,所以通过str将整数转换为字符串:
df['num'] = df.apply(lambda x: str(x['num']) + ' ' + x['unit'], axis=1) #alternative #df['num'] = df.apply(lambda x: ' '.join([str(x['num']), x['unit']]), axis=1)


    推荐阅读