Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/316.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_Concatenation_Series - Fatal编程技术网

Python 如何将多个熊猫系列连接到一行?

Python 如何将多个熊猫系列连接到一行?,python,pandas,concatenation,series,Python,Pandas,Concatenation,Series,目标:我有两个熊猫系列。在每个列上,我想应用一个函数,为该列提供一些汇总统计信息(如sum,count等等)。所有这些都嵌入到一个for-each`循环中。例如: DataFrame1 Id V1 V2 0 3 2 1 2 1 DataFrame2 Id T1 T2 0 4 2 1 5

目标:我有两个熊猫系列。在每个列上,我想应用一个函数,为该列提供一些汇总统计信息(如
sum
count
等等)。所有这些都嵌入到一个for-each`循环中。例如:

DataFrame1
    Id      V1       V2    
    0       3        2
    1       2        1

DataFrame2
    Id      T1       T2    
    0       4        2
    1       5        2
(计数任务)的结果假定为:

DataFrameGoal
    Id      V1       V2      T1       T2  
    0       2        2       2        2
我的代码可以正常工作,但我得到的解决方案是:

DataFrameGoal
    Id      V1       V2      T1       T2  
    0       2        2       NaN      NaN
    1       NaN      NaN     2        2
我的代码:

import pandas as pd
import numpy as np
df1 = pd.DataFrame({'a' : np.random.randn(6),
                 'b' : np.random.randn(6),
                 'c' : np.random.randn(6)})

df2 = pd.DataFrame({'d' : np.random.randn(6),
                 'e' : np.random.randn(6),
                 'f' : np.random.randn(6)})

def mysum(col):
    return col.count()

lst = []
lst.append(df1)
lst.append(df2)

myDf = pd.DataFrame()

for el in lst:
    test = el.apply(lambda cols: mysum(cols))
    myDf = myDf.append(test, ignore_index=True)

print(myDf)
有人能帮我达到我的目标吗?我也尝试了
.assign
,但这也不能解决我的问题。 注:我知道简单的事情,如计数或求和,可以很容易地完成,但我有一些复杂的任务,这只是一个简单的例子

试试这个

pd.concat([df1,df2], axis=1)

然后应用您想要的任何函数。

很难说问题是来自连接数据帧还是表单
mySum()
。但你可以试试:

myDf = (pd.concat(el.apply(lambda cols: mySum(cols)) 
                   for el in [df1,df2])
          .to_frame().T)