python-3.x - 在python中合并数据框
问题描述
我有以下2个数据框:
数据1:
High Low Open Close Volume Adj Close
Date
2015-03-03 1773.900024 1747.550049 1764.000000 1758.300049 466325.0 1614.088623
2015-03-04 1774.650024 1715.000000 1765.000000 1725.150024 423168.0 1583.657471
2015-03-05 1729.000000 1675.000000 1725.599976 1698.650024 606834.0 1559.330933
2015-03-09 1689.800049 1647.300049 1686.000000 1660.099976 202470.0 1523.942627
2015-03-10 1677.000000 1633.000000 1661.000000 1650.150024 274799.0 1514.808838
... ... ... ... ... ... ...
2016-02-19 1280.900024 1248.400024 1259.800049 1278.000000 160509.0 1196.074463
2016-02-22 1287.300049 1267.650024 1274.500000 1281.500000 122556.0 1205.007446
2016-02-23 1282.000000 1240.650024 1271.099976 1243.900024 137883.0 1169.651611
2016-02-24 1245.250000 1225.800049 1239.000000 1233.150024 122545.0 1159.543335
2016-02-25 1234.800049 1196.000000 1231.400024 1199.849976 208252.0 1128.230957
244 rows × 6 columns
数据2:
High Low Open Close Volume Adj Close
Date
2016-09-14 1626.900024 1582.650024 1584.000000 1620.000000 282022 1533.289062
2016-09-15 1623.849976 1592.699951 1615.050049 1611.199951 226222 1524.960327
2016-09-16 1639.900024 1613.400024 1625.000000 1626.300049 250388 1539.252075
2016-09-19 1658.000000 1632.150024 1636.000000 1652.750000 256936 1564.286011
2016-09-20 1656.300049 1625.500000 1652.000000 1632.300049 276332 1544.930908
... ... ... ... ... ... ...
2016-12-19 1296.750000 1269.550049 1294.150024 1277.699951 320880 1209.310669
2016-12-20 1299.000000 1272.000000 1274.800049 1295.150024 128333 1225.827026
2016-12-21 1314.099976 1295.000000 1300.050049 1300.000000 189869 1230.417114
2016-12-22 1305.099976 1285.199951 1298.800049 1294.400024 195979 1225.116821
2016-12-23 1305.000000 1285.500000 1296.050049 1296.300049 167352 1226.915405
69 rows × 6 columns
注意日期不同。因此,要合并我使用过的这个数据框:final_data = pd.merge(data1,data2, on='Date', how ='outer')
但生成的数据框如下所示:
High_x Low_x Open_x Close_x Volume_x Adj Close_x High_y Low_y Open_y Close_y Volume_y Adj Close_y
Date
2015-03-03 1773.900024 1747.550049 1764.000000 1758.300049 466325.0 1614.088623 NaN NaN NaN NaN NaN NaN
2015-03-04 1774.650024 1715.000000 1765.000000 1725.150024 423168.0 1583.657471 NaN NaN NaN NaN NaN NaN
2015-03-05 1729.000000 1675.000000 1725.599976 1698.650024 606834.0 1559.330933 NaN NaN NaN NaN NaN NaN
2015-03-09 1689.800049 1647.300049 1686.000000 1660.099976 202470.0 1523.942627 NaN NaN NaN NaN NaN NaN
2015-03-10 1677.000000 1633.000000 1661.000000 1650.150024 274799.0 1514.808838 NaN NaN NaN NaN NaN NaN
... ... ... ... ... ... ... ... ... ... ... ... ...
2016-12-19 NaN NaN NaN NaN NaN NaN 1296.750000 1269.550049 1294.150024 1277.699951 320880.0 1209.310669
2016-12-20 NaN NaN NaN NaN NaN NaN 1299.000000 1272.000000 1274.800049 1295.150024 128333.0 1225.827026
2016-12-21 NaN NaN NaN NaN NaN NaN 1314.099976 1295.000000 1300.050049 1300.000000 189869.0 1230.417114
2016-12-22 NaN NaN NaN NaN NaN NaN 1305.099976 1285.199951 1298.800049 1294.400024 195979.0 1225.116821
2016-12-23 NaN NaN NaN NaN NaN NaN 1305.000000 1285.500000 1296.050049 1296.300049 167352.0 1226.915405
313 rows × 12 columns
我如何合并这两个数据框以便列对齐。
解决方案
您可以使用pd.concat
:
print( pd.concat([df1, df2]) )
印刷:
High Low Open Close Volume AdjClose
Date
2015-03-03 1773.900024 1747.550049 1764.000000 1758.300049 466325.0 1614.088623
2015-03-04 1774.650024 1715.000000 1765.000000 1725.150024 423168.0 1583.657471
2015-03-05 1729.000000 1675.000000 1725.599976 1698.650024 606834.0 1559.330933
2016-09-14 1626.900024 1582.650024 1584.000000 1620.000000 282022.0 1533.289062
2016-09-15 1623.849976 1592.699951 1615.050049 1611.199951 226222.0 1524.960327
2016-09-16 1639.900024 1613.400024 1625.000000 1626.300049 250388.0 1539.252075
2016-09-19 1658.000000 1632.150024 1636.000000 1652.750000 256936.0 1564.286011
...
推荐阅读
- c++ - QtConcurrent 块 UI
- c# - 基本 Stream/StreamReader 类中没有同步的非阻塞读取方法
- php - Laravel 流明错误:在全栈 laravel 框架中实现流明时出错
- proxy - Keycloak 作为 Apache2 背后的子资源
- node.js - 正在寻找修复
- python - 为什么我的烧瓶应用程序没有在 formpage.html 中发布帖子?
- c++ - 在 C++ 中使用运算符重载的矩阵减法
- r - 如何在 R markdown 中添加子图(bookdown)
- flutter - 如何将 wrap 小部件的子小部件左对齐?
- python - Python – 使用拆分记录清理 CSV 文件