尝试从groupby
计算中创建新列。在下面的代码中,我获得了每个日期的正确计算值(请参阅下面的组),但是当我尝试df['Data4']
用它创建一个新列()时,我得到了NaN。因此,我正在尝试在数据框中使用Data3所有日期的总和创建一个新列,并将其应用于每个日期行。例如,2015-05-08位于2行中(总计为50 + 5 = 55
),在这个新列中,我希望两行中都具有55。
import pandas as pd
import numpy as np
from pandas import DataFrame
df = pd.DataFrame({
'Date' : ['2015-05-08', '2015-05-07', '2015-05-06', '2015-05-05', '2015-05-08', '2015-05-07', '2015-05-06', '2015-05-05'],
'Sym' : ['aapl', 'aapl', 'aapl', 'aapl', 'aaww', 'aaww', 'aaww', 'aaww'],
'Data2': [11, 8, 10, 15, 110, 60, 100, 40],
'Data3': [5, 8, 6, 1, 50, 100, 60, 120]
})
group = df['Data3'].groupby(df['Date']).sum()
df['Data4'] = group
你要使用transform
此方法将返回索引与df对齐的Series
,然后可以将其添加为新列:
In [74]:
df = pd.DataFrame({'Date': ['2015-05-08', '2015-05-07', '2015-05-06', '2015-05-05', '2015-05-08', '2015-05-07', '2015-05-06', '2015-05-05'], 'Sym': ['aapl', 'aapl', 'aapl', 'aapl', 'aaww', 'aaww', 'aaww', 'aaww'], 'Data2': [11, 8, 10, 15, 110, 60, 100, 40],'Data3': [5, 8, 6, 1, 50, 100, 60, 120]})
df['Data4'] = df['Data3'].groupby(df['Date']).transform('sum')
df
Out[74]:
Data2 Data3 Date Sym Data4
0 11 5 2015-05-08 aapl 55
1 8 8 2015-05-07 aapl 108
2 10 6 2015-05-06 aapl 66
3 15 1 2015-05-05 aapl 121
4 110 50 2015-05-08 aaww 55
5 60 100 2015-05-07 aaww 108
6 100 60 2015-05-06 aaww 66
7 40 120 2015-05-05 aaww 121
问题内容: 我正在尝试在python中创建一个不错的列列表,以与我创建的命令行管理工具一起使用。 基本上,我想要一个像这样的列表: 变成: 使用普通标签不会解决问题,因为我不知道每一行中最长的数据。 这与Linux中的’column -t’相同。 我到处寻找各种python库来执行此操作,但找不到任何有用的方法。 问题答案: 这样做是计算最长的数据条目以确定列宽,然后在打印出每一列时用于添加必要的
我试图用web表单做一个web调查应用程序。问题是我在调查创建部分有麻烦。
问题内容: 假设我有一些无法访问原始PHP创建的数组的源输出: 现在,我想输入该数据,并使算法重新创建它正在打印的原始数组,以便可以将其用于自己的应用程序。 目前,我正在考虑a 和regex语句来提取数据并将其适当放置。在我进一步介绍之前,有没有一种更简单的方法,通过已经编写的代码或php插件为我准备好了呢? 问题答案: 不是我的代码,请在注释中找到:print_r’Matt ‘是所有者
问题内容: 在许多语言(和地方)中,都有一种不错的做法,即通过创建一个像这样的块来创建本地范围。 我该如何在python中实现此功能而又不会出现意外的缩进错误,也不会使用某种技巧 问题答案: 在Python中,作用域分为三种类型:全局,局部和类。您可以创建专门的“作用域”词典以传递给exec / eval()。另外,您可以使用嵌套作用域(在另一个作用域中定义一个函数)。我发现这些在我的所有代码中就
问题内容: 我有一个数组: 而且我会: 打印: 有功能吗,所以在做的时候: 我会把阵列取回来吗? 问题答案: 我实际上写了一个将“字符串数组”解析为实际数组的函数。显然,它有点笨拙,但可以在我的测试用例上使用。这是http://codepad.org/idlXdij3上功能原型的链接。 对于那些不想单击链接的人,我也会在内联发布代码:
问题内容: 阅读AngularJS教程第9步后, 我创建了自己的AngularJS过滤器,该过滤器应将布尔数据转换为html。 这是我的过滤器代码: 这是我的HTML代码: 问题是浏览器将返回值按字面显示为: 而不是应显示的图标(或呈现的html)。 这是JSFiddle示例 我认为在此过程中会发生一些消毒。 是否可以关闭此特定过滤器的消毒功能? 我也知道如何通过不从过滤器返回HTML输出而是显示