【Kaggle | Pandas】练习6:重命名和组合
文章目录
- 1. 重命名
- 2. 修改索引名称
- 3. 列表组合
- 4. 设置两个表相同索引并组合
import pandas as pdreviews = pd.read_csv("../input/wine-reviews/winemag-data-130k-v2.csv", index_col=0)from learntools.core import binder; binder.bind(globals())
from learntools.pandas.renaming_and_combining import *
print("Setup complete.")
🍊通过运行下面的单元格查看数据的前几行:
reviews.head()
1. 重命名
region_1和region_2是数据集中区域设置列的非常没有信息的名称。创建一个reviews的副本,将这些列分别重命名为region和locale。
# Your code here
renamed = reviews.rename(columns={'region_1': 'region', 'region_2': 'locale'})
2. 修改索引名称
将数据集中的索引名称设置为wines
reindexed = reviews.rename_axis("wines", axis='rows')
它将 DataFrame 的行索引(axis=‘rows’)重命名为“wines”
3. 列表组合
Things on Reddit数据集包括来自reddit.com上顶级论坛(“subreddits”)的产品链接。运行下面的单元格,加载一个在/r/gaming子Reddit上提到的产品的框架,以及另一个在r//movies子Reddit上提到的产品的框架。
gaming_products = pd.read_csv("../input/things-on-reddit/top-things/top-things/reddits/g/gaming.csv")
gaming_products['subreddit'] = "r/gaming"
movie_products = pd.read_csv("../input/things-on-reddit/top-things/top-things/reddits/m/movies.csv")
movie_products['subreddit'] = "r/movies"
创建一个DataFrame的产品上提到的任一subreddit。
combined_products = pd.concat([gaming_products, movie_products])
pandas 库的 concat 函数将两个 DataFrame(gaming_products 和 movie_products)进行拼接。默认情况下,pd.concat 会沿着行的轴(axis=0)将两个 DataFrame 叠加在一起,形成一个新的 DataFrame。
这行代码使用 pandas 库的 concat 函数将两个 DataFrame(gaming_products 和 movie_products)进行拼接。默认情况下,pd.concat 会沿着行的轴(axis=0)将两个 DataFrame 叠加在一起,形成一个新的 DataFrame。
如果这两个 DataFrame 的列名相同,它们的内容会按行合并;如果列名不同,结果 DataFrame 会包含所有列,缺失的值会填充为 NaN。
4. 设置两个表相同索引并组合
Kaggle上的举重数据库数据集包括一个用于举重比赛的CSV表和一个单独的用于举重比赛的CSV表。运行下面的单元格,将这些数据集加载到嵌套框架中:
powerlifting_meets = pd.read_csv("../input/powerlifting-database/meets.csv")
powerlifting_competitors = pd.read_csv("../input/powerlifting-database/openpowerlifting.csv")
这两个表都包括对MeetID的引用,MeetID是数据库中包含的每个会议(比赛)的唯一键。使用此方法,生成一个将两个表合并为一个的数据集。
powerlifting_combined = powerlifting_meets.set_index("MeetID").join(powerlifting_competitors.set_index("MeetID"))
powerlifting_meets.set_index("MeetID")
:将 powerlifting_meets DataFrame 的 MeetID 列设置为索引。powerlifting_competitors.set_index("MeetID")
:同样将 powerlifting_competitors DataFrame 的 MeetID 列设置为索引。.join(...)
:在第一个 DataFrame(设置了 MeetID 作为索引的 powerlifting_meets)上执行连接操作,将第二个 DataFrame(设置了 MeetID 作为索引的 powerlifting_competitors)的行与之匹配。
结果是一个新的 DataFrame,包含了两个表中与 MeetID 相同的行的数据,合并成一张表。