Python 在带有字符串和浮点数的熊猫中添加列
我有一个熊猫数据框。正在尝试根据每条记录的数据添加推荐列。得到奇怪的输出。见下文。任何帮助都将不胜感激Python 在带有字符串和浮点数的熊猫中添加列,python,pandas,string,dataframe,Python,Pandas,String,Dataframe,我有一个熊猫数据框。正在尝试根据每条记录的数据添加推荐列。得到奇怪的输出。见下文。任何帮助都将不胜感激 df = name sales performance vs goal jane 110 0.1 john 120 0.2 想要: 代码: 获取: name sales performance vs goal recommendation jane 110 0.1 sales 0
df =
name sales performance vs goal
jane 110 0.1
john 120 0.2
想要:
代码:
获取:
name sales performance vs goal recommendation
jane 110 0.1 sales 0.1\n24 above goal
john 120 0.2 sales 0.1\n24 above goal
使用str(df[…])
将序列转换为字符串,不会得到一系列字符串。改为这样做:
df['recommendation'] = 'sales ' + df['performance vs goal'].astype(str) + ' above goal'
或者(可以说更优雅,但可能更慢):
使用str(df[…])
将序列转换为字符串,不会得到一系列字符串。改为这样做:
df['recommendation'] = 'sales ' + df['performance vs goal'].astype(str) + ' above goal'
或者(可以说更优雅,但可能更慢):
<>而不是像下面写的那样,可以考虑使用任何其他的字符串插值方法。 所以不要用这个
df['recommendation'] = 'sales ' + str(df['performance vs goal']) + ' above goal'
但是用这个
performance_vs_goal = df['performance vs goal']
df['recommendation']= "sales %s above goal" % (performance_vs_goal)
所以我所做的是将性能目标存储为变量,并使用字符串插值。您可以决定先不将其存储在变量中,但我觉得它是可读的
因此,解决方案所做的是用新值替换%s。所以它就像一个占位符
您甚至可以更进一步,将上面或下面存储为一个变量,该变量根据值进行更改
e、 g
谢谢
而不是像你下面写的那样,可以考虑使用任何其他的字符串插值方法。 所以不要用这个df['recommendation'] = 'sales ' + str(df['performance vs goal']) + ' above goal'
但是用这个
performance_vs_goal = df['performance vs goal']
df['recommendation']= "sales %s above goal" % (performance_vs_goal)
所以我所做的是将性能目标存储为变量,并使用字符串插值。您可以决定先不将其存储在变量中,但我觉得它是可读的
因此,解决方案所做的是用新值替换%s。所以它就像一个占位符
您甚至可以更进一步,将上面或下面存储为一个变量,该变量根据值进行更改
e、 g
谢谢您可以在迭代
性能与目标
列的值时使用列表理解,并使用f字符串更容易地查看输出:
df[“建议”]=[f“销售{价值}高于目标”,用于df[“绩效与目标”]]中的价值
您可以在迭代性能与目标
列的值时使用列表理解,并使用f字符串更容易地查看输出:
df[“建议”]=[f“销售{价值}高于目标”,用于df[“绩效与目标”]]中的价值
performance_vs_goal = df['performance vs goal']
if performance_vs_goal >= 0.1:
df['recommendation'] = "sales %s above goal" % (performance_vs_goal)
else:
df['recommendation']= "sales %s less than goal" % (performance_vs_goal)