Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在带有字符串和浮点数的熊猫中添加列_Python_Pandas_String_Dataframe - Fatal编程技术网

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)