python - 使用 sqlite 访问 Pandas DF
问题描述
我从两个包含带有 cvid 统计信息的表格的网站上大致抓取了 2 个表格来运行分析。
我想知道是否有办法使用 sqlite3 按国家/地区合并这两个 daframe?
我的主要目标是将它作为数据库,但我似乎无法在线找到解决方案。
我是否应该先尝试将它们转换为 db,然后按国家/地区合并它们?
我应该创建一个数据库并创建两个表来存储它们吗?
我不确定什么是最好的程序。
解决方案
您可以直接合并数据框pandas
:
df1 = connect_main()
df2 = connect_side()
df_out = pd.merge(
df1, df2, left_on="Country,Other", right_on="location", how="outer"
)
pd.set_option("display.float_format", lambda x: "%.1f" % x)
print(df_out)
印刷:
Country,Other TotalCases NewCases TotalDeaths NewDeaths TotalRecovered NewRecovered ActiveCases Serious,Critical Tot Cases/1M pop Deaths/1M pop TotalTests Tests/\n1M pop\n Population geoid location last_updated total_vaccinations population people_vaccinated people_fully_vaccinated
0 USA 33,565,079 +14,964 597,216 +270 26,569,250 +11,112 6,398,613 8,750 100,896 1,795 460,635,096 1,384,662 332,669,677 NaN NaN NaN NaN NaN NaN NaN
1 India 23,663,494 +323,068 257,754 +3,529 19,673,714 +297,064 3,732,026 8,944 17,004 185 307,583,991 221,022 1,391,642,201 IND India 2021-05-09 168304868.0 1366417754.0 133854676.0 34450192.0
2 Brazil 15,285,048 425,711 13,847,191 1,012,146 8,318 71,473 1,991 46,834,128 218,998 213,856,608 BRA Brazil 2021-05-07 46875460.0 211049527.0 31722544.0 15152916.0
...
228 Total: 721 15 706 0 0 NaN NaN NaN NaN NaN NaN NaN
229 Total: 160,851,977 +526,108 3,339,100 +8,181 139,610,349 +574,212 17,902,528 105,339 20,635.8 428.4 NaN NaN NaN NaN NaN NaN NaN
230 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN CPV Cape Verde 2021-03-24 2184.0 549935.0 2184.0 NaN
231 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN TCA Turks and Caicos Islands 2021-04-11 25039.0 38191.0 15039.0 10000.0
232 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN TLS Timor 2021-04-14 2629.0 1293119.0 2629.0 NaN
233 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NRU Nauru 2021-04-15 700.0 12581.0 700.0 NaN
234 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN BRN Brunei 2021-04-23 10715.0 433285.0 10715.0 NaN
235 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN COD Democratic Republic of Congo 2021-04-25 1700.0 86790567.0 1700.0 NaN
236 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN TON Tonga 2021-04-26 5367.0 104494.0 5367.0 NaN
237 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN VCT Saint Vincent and the Grenadines 2021-05-01 14526.0 110589.0 NaN NaN
238 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN GBR United Kingdom 2021-05-08 53041048.0 66834405.0 35371669.0 17669379.0
239 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN CIV Cote d'Ivoire 2021-05-09 262639.0 25716544.0 262639.0 NaN
240 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN CUW Curacao 2021-05-09 109444.0 157538.0 77141.0 32303.0
241 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN KOR South Korea 2021-05-09 4181003.0 51709098.0 3674729.0 506274.0
242 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ARE United Arab Emirates 2021-05-09 11145934.0 9770529.0 NaN NaN
243 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN USA United States 2021-05-09 259716989.0 331811257.0 152116936.0 114258244.0
244 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN OWID_WRL World NaN 1297259952.0 7673533970.0 641081197.0 309613453.0
注意:某些国家/地区名称不“匹配”。例如“USA”和“United States” - 所以你需要明确地重命名它们才能正确合并。
推荐阅读
- python - OOP Pygame 圈子
- algorithm - 如何提高此功能的性能?
- excel - 试图找到一种方法来根据在 Excel 中不同表中查找的条件对字段求和
- c# - 在 .NET Core 3.1 中使用 System.Text.Json 进行反序列化会导致 null 属性值
- css - 无法在模式页脚的 bootstrap-vue 列中居中选择列表和分页器
- lua - 传入字符串后尝试将实例与字符串连接时出错
- python - 计算某个类的实例数并通过 Selenium 获取值
- node.js - 使用 AXIOS 和 Nodejs 从 DropBox 下载文件
- javascript - 使用 javascript 和 css 为 2 个实例选择横幅的随机背景图像
- c++ - 反汇编 C++ 中全局变量的 .rodata 部分(objdump -D)