大熊猫按照最大的公共列分母聚合框架并填充缺失值

时间:2018-11-13 08:28:59

标签: pandas numpy dataframe alignment concatenation

我一直在努力解决这个问题,尽管我想采取一些解决方法,但我还是想知道是否有一种优雅的方法来实现此结果:

import pandas as pd
import numpy as np

data = np.array([
            [1,10],
            [2,12],
            [4,13],
            [5,14],
            [8,15]])

df1 = pd.DataFrame(data=data, index=range(0,5), columns=['x','a'])

data = np.array([
            [2,100,101],
            [3,120,122],
            [4,130,132],
            [7,140,142],
            [9,150,151],
            [12,160,152]])

df2 = pd.DataFrame(data=data, index=range(0,6), columns=['x','b','c'])

现在,我希望有一个将这2个连接起来并用先前的值填充缺失值的数据框 否则为第一个值。这两个数据帧的网络大小都可以不同,我们感兴趣的是唯一列x。

那将是我想要的输出帧df_result。 x是2帧之间的聚合唯一“ x”

    x   a   b   c
0   1   10  100 101
1   2   12  100 101
2   3   12  120 122
3   4   13  130 132
4   5   14  130 132
5   7   14  140 142
6   8   15  140 142
7   9   15  150 151
8   12  15  160 152 

任何帮助或提示将不胜感激,非常感谢

1 个答案:

答案 0 :(得分:1)

您可以简单地在2个数据帧上使用合并操作,然后可以对空值填充应用排序,正向填充和向后填充。

<pre>
    <location /svn>
        DAV svn
        SVNParentPath /u01/ciroot/subversion
        AuthType Basic
        AuthBasicProvider ldap
        AuthName "Root Repo"
        AuthLDAPURL "ldap://ldap.server.com:389/DC=macgroup,DC=local?sAMAccountName?sub?(&(ObjectClass=*)(memberOf=CN=OBIEE_DEV,OU=OBIEE,OU=Security,OU=Groups,OU=Global Resources,DC=MACGROUP,DC=LOCAL))" STARTTLS

        AuthLDAPBindDN "CN=oidkerbt,OU=Service Accounts,OU=Users,OU=Global 
        Resources,DC=macgroup,DC=local"
        AuthLDAPBindPassword password_of_ldap_server
        Require valid-user
    </location>
</pre>

出局:

df1.merge(df2,on='x',how='outer').sort_values('x').ffill().bfill()