眼前多少难甘事,自古男儿当自强。这篇文章主要讲述在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.apply
与axis=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)
推荐阅读
- 在Google App Script中使用导入的模块
- 如何正确使用mapPartitions函数
- 找不到adb请设置ANDROID_HOME异常 - Visual Studio
- Mac中的Android工作室路径错误
- 如何从app delegate访问NSViewController()
- 如何从Android中的图像数组创建视频()
- android异常,即使jdom库存在
- 如何使用Android SDK Manager安装NDK
- 关于在app store上处理iAP成功的问题