python - 使用来自多个列的字符串和整数应用函数不起作用
问题描述
我想创建一个基于两列的组合字符串,一列是整数,另一列是字符串。我需要将它们组合起来创建一个字符串。
我已经尝试在此处使用此答案中的解决方案(应用函数以创建具有多列作为参数的字符串),但它没有提供所需的输出。H
我有两列:prod_no 是一个整数,PROD 是一个字符串。所以像
| prod_no | PROD | out | | |
|---------|-------|---------------|---|---|
| 1 | PRODA | @Item=1=PRODA | | |
| 2 | PRODB | @Item=2=PRODB | | |
| 3 | PRODC | @Item=3=PRODC | | |
为了获得最后一列,我使用了以下代码:
prod_list['out'] = prod_list.apply(lambda x: "@ITEM={}=={}"
.format(prod_list.prod_no.astype(str), prod_list.PROD), axis=1)
我正在尝试生成“out”列,但该代码的结果很奇怪。输出是@Item=0 1 22 3...非常奇怪。我特别尝试使用 apply 和 lambda 来实现。但是,我偏向于高效的实现,因为我正在尝试学习如何编写优化的代码。请帮忙 :)
解决方案
这行得通。
import pandas as pd
df= pd.DataFrame({"prod_no": [1,2,3], "PROD": [ "PRODA", "PRODB", "PRODC" ]})
df["out"] = df.apply(lambda x: "@ITEM={}=={}".format(x["prod_no"], x["PROD"]), axis=1)
print(df)
输出:
PROD prod_no out
0 PRODA 1 @ITEM=1==PRODA
1 PRODB 2 @ITEM=2==PRODB
2 PRODC 3 @ITEM=3==PRODC
推荐阅读
- java - Android Studio:无法将进程工作目录设置为“新目录”
- mysql - 如何为活动步行检索最快运动员的数据?
- python - tk.PhotoImage 无法打开“gif”
- c# - 将选择/下拉项的值传递给控制器仅接收 0
- excel - 使用数组使用 VBA 绘制树/格子
- vue.js - 如何在 vue cli 中设置 webpack uglifyoptions 以维护评论?
- reactjs - @babel/plugin-transform-react-jsx-source 的目的是什么?
- javascript - 用 html 按钮替换字符串中的自定义标记
- flutter - Flutter 使用 Streambuilder 对数据 Firestore 进行排序
- excel - MS Excel VBA:查找具有特定公式类型的单元格