如何在熊猫中组合两个数据框?

时间:2019-03-12 20:25:15

标签: python pandas

我有两个数据帧要合并为一个。我想将两列合并在一起。

BTC    17584875
ETH    1.05209e+08
XRP    41432141931
LTC    6.08515e+07
EOS    9.06245e+08
BCH    17668725
BNB    1.41175e+08
USDT   1.99636e+09
XLM    1.92156e+10
TRX    6.66821e+10

我希望新的数据框看起来像这样:

Map<A, String> returnMap = new HashMap<>();
Map<A, List<Long>> mapLByA = //...
mapLByA.forEach((k, v) -> {
    Optional<String> strOp = someMethod(v);
    if (str.isPresent()) {
        returnMap.put(k, strOp.get());
    }
});
return returnMap;

我无法使其正常工作。

2 个答案:

答案 0 :(得分:2)

重塑每个索引,以便仅剩数字:

df1.index = df1.index.str.split('_', n=2).str[1]

df2.index = df2.index.str.split('_', n=2).str[1]

然后将两个框架放在一起。

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

       0             0
1    BTC  1.758488e+07
2    ETH  1.052090e+08
3    XRP  4.143214e+10
4    LTC  6.085150e+07
5    EOS  9.062450e+08
6    BCH  1.766872e+07
7    BNB  1.411750e+08
8   USDT  1.996360e+09
9    XLM  1.921560e+10
10   TRX  6.668210e+10

答案 1 :(得分:0)

似乎您的两个数据框具有完美的增量索引。因此,如果相同的规则适用于大于10的行,则可以应用:

# [df1, df2]: your two dataframes
# axis=1: horizontally
# ignore_index=True: we don't need your previous indexes as row matches each other anyway

result = pd.concat([df1, df2], axis=1, ignore_index=True, sort=False)