python - 我只有一个里面有 3 个数据框。我怎样才能连接它们?
问题描述
我真的沉迷于此。我不知道如何将这 3 个数据帧合二为一,因为它们在一个数组内。我真的需要你的帮助。
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
str = 'https://fbref.com/en/comps/Big5/{}/{}-Big-5-European-Leagues-Stats'
seasons = ["2017-2018", "2018-2019", "2019-2020"]
for season in seasons:
url = str.format(season, season)
league = pd.read_html(url)
league = league[0]
league["Season"] = season
print(type(league))
<class 'pandas.core.frame.DataFrame'>
<class 'pandas.core.frame.DataFrame'>
<class 'pandas.core.frame.DataFrame'>
解决方案
您可以使用pandas.concat
:
import pandas as pd
url = "https://fbref.com/en/comps/Big5/{}/{}-Big-5-European-Leagues-Stats"
seasons = ["2017-2018", "2018-2019", "2019-2020"]
dfs = []
for season in seasons:
league = pd.read_html(url.format(season, season))[0]
dfs.append(league)
df = pd.concat(dfs)
print(df)
df.to_csv("data.csv", index=False)
印刷:
Rk Squad Country LgRk MP W D L GF GA GD Pts Pts/G xG xGA xGD xGD/90 Attendance Top Team Scorer Goalkeeper
0 1 Manchester City eng ENG 1 38 32 4 2 106 27 79 100 2.63 80.1 23.0 57.1 1.50 54070 Sergio Agüero - 21 Ederson
1 2 Juventus it ITA 1 38 30 5 3 86 24 62 95 2.50 59.8 28.7 31.0 0.82 39316 Paulo Dybala - 22 Gianluigi Buffon
2 3 Bayern Munich de GER 1 34 27 3 4 92 28 64 84 2.47 77.7 33.6 44.1 1.30 75000 Robert Lewandowski - 29 Sven Ulreich
3 4 Paris S-G fr FRA 1 38 29 6 3 108 29 79 93 2.45 89.2 32.2 57.0 1.50 46929 Edinson Cavani - 28 Alphonse Areola
4 5 Barcelona es ESP 1 38 28 9 1 99 29 70 93 2.45 78.3 41.1 37.2 0.98 66603 Lionel Messi - 34 Marc-André ter Stegen
...
并保存data.csv
(来自 LibreOffice 的屏幕截图):
推荐阅读
- javascript - 这段代码有问题吗?有人可以解释这是如何工作的
- python - 将 parserarg 输入 YYYY MM 和 DD 分离到单独的变量中,然后连接为字符串并发布
- javascript - 未捕获的类型错误:g(...).block 不是函数
- javascript - 如何向类添加元素(通过 JavaScript)?
- c# - 我应该在 .gitignore 文件中添加数据库迁移文件吗?
- arrays - 尝试使用 jq 过滤数组输出
- javascript - 为什么当您使用 quokka 在函数上调用 toString() 时,它会返回一个添加了额外变量的字符串?
- python - 将十进制输出为字符串时如何防止科学记数法?
- django - 如何解决 是否安装了GDAL?如果是,请尝试在您的设置问题中设置 GDAL_LIBRARY_PATH
- anychart - 如何使用来自不同时间戳的数据集填充图表中的空白