【问题标题】:Combining data frames in python在python中组合数据框
【发布时间】:2018-11-05 08:13:42
【问题描述】:

我创建的 json 文件中有一些货币。例如

[{"AUD":"2.8681"},{"AUD":"2.8667"},...], [{"BRL":"1.1607"}, {"BRL":"1.1645"},...].

import json
 import pandas as pd
 with open('AUD.json') as f:
    AUD = json.load(f)
 with open("BRL.json") as f:
    BRL=json.load(f)
 df = pd.DataFrame.from_dict(AUD)
 df2= pd.DataFrame.from_dict(BRL)
 print(df+df2)

输出是

 AUD  BRL
0    NaN  NaN
1    NaN  NaN
2    NaN  NaN
       ...

我想要的是

 AUD  BRL
0    2.8681  1.1607
1    2.8667  1.1645
2    2.8679  1.1634
     ...

提前感谢您的解决方案;)

编辑: print df.head() AUD 0 2.8681 1 2.8667 2 2.8738 3 2.8589 4 2.8598 df2.head() 也很好用 print(pd.concat([df,df2]) 输出

AUD BRL 0 2.8681 NaN 1 2.8667 NaN ... 124 NaN 1.0299 125 NaN 1.033

【问题讨论】:

  • 请在问题中包含df.head()df2.head() 的输出。显然,您想连接 DataFrame,而不是添加 它们,不是吗?那么你应该使用pd.concat,而不是+
  • pd.concat([df,df2], axis=1) ?

标签: python json pandas dataframe merge


【解决方案1】:

你犯了一个小错误,你想做的是

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

【讨论】:

    【解决方案2】:

    你需要:

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

    输出格式为:

           AUD  BRL
    0   2.8681  2.8681
    1   2.8667  2.8667
    2   2.8738  2.8738
    3   2.8589  2.8589
    4   2.8598  2.8598
    

    【讨论】:

      猜你喜欢
      • 2017-09-30
      • 1970-01-01
      • 1970-01-01
      • 2018-09-04
      • 2022-11-11
      • 2021-04-28
      • 2019-04-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多