尝试使用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
1 回答
您想使用transform这将返回一个索引与df对齐的系列,以便您可以将其添加为新列: