Python 使用多列中的字符串和整数应用函数不起作用
我想基于两列创建一个组合字符串,一列是整数,另一列是字符串。我需要组合它们来创建一个字符串 我已经尝试使用这个答案()中的解决方案,但它没有给出所需的输出。H 我有两列:prod_no是一个整数,prod是一个字符串。大概是Python 使用多列中的字符串和整数应用函数不起作用,python,string,pandas,lambda,Python,String,Pandas,Lambda,我想基于两列创建一个组合字符串,一列是整数,另一列是字符串。我需要组合它们来创建一个字符串 我已经尝试使用这个答案()中的解决方案,但它没有给出所需的输出。H 我有两列:prod_no是一个整数,prod是一个字符串。大概是 | prod_no | PROD | out | | | |---------|-------|---------------|---|---| | 1 | PRODA | @Item=1=PRODA | | | | 2
| 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
您也可以尝试使用zip:
df=df.assign(out=['@ITEM={}=={}'.format(a,b) for a,b in zip(df.prod_no,df.PROD)])
#or directly : df.assign(out='@Item='+df.prod_no.astype(str)+'=='+df.PROD)
prod_no PROD out
0 1 PRODA @ITEM=1==PRODA
1 2 PRODB @ITEM=2==PRODB
2 3 PRODC @ITEM=3==PRODC