Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/306.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.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 - Fatal编程技术网

Python 是否可以一次创建多个数据帧?

Python 是否可以一次创建多个数据帧?,python,pandas,Python,Pandas,我可以为df、df10、df20一次性运行以下代码吗?顺便说一句,在真实数据中,我将使用下面相同的代码运行80个数据帧 df = pd.DataFrame( { 'A': ['d','d','d','f','f','f','g','g','g','h','h','h'], 'B': [5,5,6,7,5,6,6,7,7,6,7,7], 'C': [1,1,1,1,1,1,1,1,1,1,1,1], 'S': [2012,2013,2014,2015,2016,2012,2

我可以为df、df10、df20一次性运行以下代码吗?顺便说一句,在真实数据中,我将使用下面相同的代码运行80个数据帧

df = pd.DataFrame( {
   'A': ['d','d','d','f','f','f','g','g','g','h','h','h'],
   'B': [5,5,6,7,5,6,6,7,7,6,7,7],
   'C': [1,1,1,1,1,1,1,1,1,1,1,1],
   'S': [2012,2013,2014,2015,2016,2012,2013,2014,2015,2016,2012,2013]     
    } );

df = (df.B + df.C).groupby([df.A,df.S]).agg(['sum','size']).
      unstack(fill_value=0)
df10 = (df.B * df.C).groupby([df.A,df.S]).agg(['sum','size']).
      unstack(fill_value=0)
df20 = (df.B - df.C).groupby([df.A,df.S]).agg(['sum','size']).
      unstack(fill_value=0)

谢谢。有没有可能把年份列出来?另外,如何修改附加代码以返回总和和大小的总和?
reset_index('S')
以年为列。将上面的结果分配给
df_u
然后
df_u.append(df_uu.sum().rename('Total','')
df1 = df.groupby(level=0, axis=1).sum()
new_cols= list(zip(df1.columns.get_level_values(0),['total'] *     len(df.columns)))
df1.columns = pd.MultiIndex.from_tuples(new_cols)
df2 = pd.concat([df1,df], axis=1).sort_index(axis=1).sort_index(axis=1,  level=1)
df2.columns = ['_'.join((col[0], str(col[1]))) for col in df2.columns]
b_c_idx_locs = [df.columns.get_loc('B'), df.columns.get_loc('C')]

a = df.values[:, b_c_idx_locs]

df['B+C'] = a.sum(1)
df['B*C'] = a.prod(1)
df['B-C'] = -np.diff(a)
cols = ['B+C', 'B*C', 'B-C']

df.groupby(['A', 'S'])[cols].agg(['sum', 'size'])