当我使用这种语法时,它将创建一个序列,而不是将列添加到新的数据帧(总和)中。请帮忙。
我的代码:
sum = data['variance'] = data.budget + data.actual
我的数据(在数据框df中):(当前除了预算外,其他所有内容-实际的,我要创建差异列吗?
cluster date budget actual | budget - actual
0 a 2014-01-01 00:00:00 11000 10000 1000
1 a 2014-02-01 00:00:00 1200 1000
2 a 2014-03-01 00:00:00 200 100
3 b 2014-04-01 00:00:00 200 300
4 b 2014-05-01 00:00:00 400 450
5 c 2014-06-01 00:00:00 700 1000
6 c 2014-07-01 00:00:00 1200 1000
7 c 2014-08-01 00:00:00 200 100
8 c 2014-09-01 00:00:00 200 300
我认为您已经误解了某些python语法,以下代码执行了两项任务:
In [11]: a = b = 1
In [12]: a
Out[12]: 1
In [13]: b
Out[13]: 1
因此,在您的代码中就好像您在做的一样:
sum = df['budget'] + df['actual'] # a Series
# and
df['variance'] = df['budget'] + df['actual'] # assigned to a column
后者为df创建了一个新列:
In [21]: df
Out[21]:
cluster date budget actual
0 a 2014-01-01 00:00:00 11000 10000
1 a 2014-02-01 00:00:00 1200 1000
2 a 2014-03-01 00:00:00 200 100
3 b 2014-04-01 00:00:00 200 300
4 b 2014-05-01 00:00:00 400 450
5 c 2014-06-01 00:00:00 700 1000
6 c 2014-07-01 00:00:00 1200 1000
7 c 2014-08-01 00:00:00 200 100
8 c 2014-09-01 00:00:00 200 300
In [22]: df['variance'] = df['budget'] + df['actual']
In [23]: df
Out[23]:
cluster date budget actual variance
0 a 2014-01-01 00:00:00 11000 10000 21000
1 a 2014-02-01 00:00:00 1200 1000 2200
2 a 2014-03-01 00:00:00 200 100 300
3 b 2014-04-01 00:00:00 200 300 500
4 b 2014-05-01 00:00:00 400 450 850
5 c 2014-06-01 00:00:00 700 1000 1700
6 c 2014-07-01 00:00:00 1200 1000 2200
7 c 2014-08-01 00:00:00 200 100 300
8 c 2014-09-01 00:00:00 200 300 500
顺便sum
说一句,您不应将其用作变量名称,因为它会覆盖内置的sum函数。
问题内容: 我正在考虑对每个具有大量列的数据帧进行合并操作。不想结果有两个具有相同名称的列。我正在尝试查看两个框架之间共有的列名列表: 我该如何在Index对象上操作该NumPy布尔数组,使其仅返回公用列的列表? 问题答案: 使用或: 后一种选择的替代语法:
问题内容: 假设我有一个df包含的列。我定义一个函数: 现在,我要应用f到df的两列,以逐元素的计算新列,有点像: 怎么做 ? 如下添加详细样本 * 问题答案: 这是apply在数据框上使用的示例,我正在用进行调用。 请注意,区别在于,与其尝试将两个值传递给该函数f,不如重写该函数以接受pandas Series对象,然后对Series进行索引以获取所需的值。 根据你的用例,有时创建一个对象然后在
问题内容: 我在Python中使用熊猫有数据框。其中两列分别命名为和。我想创建一个名为 的变量。 问题答案: 如果两个列都是字符串,则可以直接将它们连接起来: 如果其中一列(或两列)都不是字符串类型,则应首先将其转换为字符串, 这样做时要小心! 如果需要连接多个字符串列,可以使用: 其中是分隔符。
问题内容: 我需要将列表转换为一列熊猫数据框 当前列表(len = 3): 所需的熊猫DF(形状= 3,): 请注意,这些数字代表上述“必需熊猫” DF中的索引。 问题答案: 采用: 谢谢DYZ:
问题内容: 我在将大写字母应用于DataFrame中的列时遇到麻烦。 数据框为。 是需要应用大写的列标题。 问题是值由三个字母和三个数字组成。例如是值之一。 我收到一个错误: 如何将大写字母应用于DataFrame列中的前三个字母? 问题答案: 这应该工作: 并且您是否希望所有名称都使用大写格式:
问题内容: 我试图将输出转换为熊猫数据框,但我很努力。我有这个清单 我想创建一个具有3列和3行的熊猫数据框。我尝试使用 但它似乎对我不起作用。任何帮助,将不胜感激。 问题答案: 您需要转换为然后: