繁体   English   中英

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

[英]How combine two data frames in pandas?

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

                                      0
data_1_circulating_supply      17584875
data_2_circulating_supply   1.05209e+08
data_3_circulating_supply   41432141931
data_4_circulating_supply   6.08515e+07
data_5_circulating_supply   9.06245e+08
data_6_circulating_supply      17668725
data_7_circulating_supply   1.41175e+08
data_8_circulating_supply   1.99636e+09
data_9_circulating_supply   1.92156e+10
data_10_circulating_supply  6.66821e+10

                 0
data_1_symbol    BTC
data_2_symbol    ETH
data_3_symbol    XRP
data_4_symbol    LTC
data_5_symbol    EOS
data_6_symbol    BCH
data_7_symbol    BNB
data_8_symbol   USDT
data_9_symbol    XLM
data_10_symbol   TRX

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

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

我无法让它工作。

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

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

似乎您的两个数据帧具有完美的增量索引。 因此,如果相同的规则适用于大于 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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM