【发布时间】:2018-08-01 23:54:27
【问题描述】:
我有一个名为 'df_main' 的数据框,其中的行数随着用户每次导入 csv 而改变。无论有多少行,“沙龙总计”行和'Paid_BB_Percent' 列都将始终存在。我想从df_main.loc['salon totals', 'Paid_BB_Percent] 复制数据,并在名为'Store_BB_Percent' 的数据框末尾创建一个新列,其中列中的每个单元格都包含此数据的副本。
我的想法是我将拥有另一个数据框,其中将包含一行df_manager = df_main[df_main['Employee'].str.contains(manager_name)],该行将用于通过用户输入查找特定的经理行,然后将添加一个新列,如下所示:@987654327 @
另一种更好的方法是将df_main.iloc['salon totals', 'Paid_BB_Percent'] 乘以df_manager['Manager_Service_Diff'],如下所示:
df_manager['Manager_BB_Bonus'] = (df_main.loc['salon totals', 'Paid_BB_Percent'] * df_manager['Manager_Service_Diff'])
问题在于我运行时:
df_manager = df_main[df_main['Employee'].str.contains(manager_name)]
df_manager['Service_Breakpoint'] = 1700
df_manager['Manager_Service_Diff'] = (df_manager['Service_Sales'] - df_manager['Service_Breakpoint'])
df_manager['Manager_BB_Bonus'] = (df_main.loc['salon totals', 'Paid_BB_Percent'] * df_manager['Manager_Service_Diff'])
df_manager
我收到错误:“KeyError: '标签 [沙龙总数] 不在 [索引]'”
感谢任何帮助。
【问题讨论】:
-
您正在尝试将数据帧与系列相乘。什么是预期的乘法运算?
-
我不明白你在说什么.. 这也不起作用...
df_manager['Manager_BB_Bonus'] = (df_main.loc['salon totals', 'Paid_BB_Percent'] * df_manager.loc['salon totals', 'Manager_Service_Diff']) -
什么不起作用?我已经发布了答案。
-
好的。所以我可以通过使用整数位置来做到这一点...
df_manager['Manager_BB_Bonus'] = (df_main.iloc[-1, 5] * df_manager['Manager_Service_Diff'])供将来需要此功能的任何人使用。