数据分析(5)merge()、groupby()、索引相关操作

1、join:默认情况下他是把行索引相同的数据合并到一起。

merge:按照指定的列把数据按照一定的方式合并到一起。

通过merge函数合并两个DataFrame。on代表指明拿什么作为key来进行匹配。how这里分为left,right,inner,outer等方式。

t1.merge(t2,left_on=”a”,right_on=”f”,how=”inner”)

默认的合并方式inner,交集

merge outer,并集,NaN补全

merge left,左边为准,NaN补全

merge right,右边为准,NaN补全

2、在pandas中类似的分组的操作 df.groupby(by=”columns_name”)

grouped是一个DataFrameGroupBy对象,是可迭代的,grouped中的每一个元素是一个元组。

如果我们需要对国家和省份进行分组统计:

(1)grouped = df.groupby(by=[df[“Country”],df[“State/Province”]]) 这种情况df可以省略,因为Country和State/Province已经包含在df中。

获取分组之后的某一部分数据的计数:

(2)df.groupby(by=[“Country”,”State/Province”])[“Country”].count()

对某几列数据进行分组计数:

(3)df[“Country”].groupby(by=[df[“Country”],df[“State/Province”]]).count() 这种情况df必须写,因为Country和State/Province不存在于前边的Country中。

(1)(2)(3)的返回结果是一样的。如果只返回一列数据,返回的是一个Series类型;(1)(2)(3)返回的是多列数据,所以返回的是一个DataFrame类型。

3、简单的索引操作:
获取index:df.index
指定index :df.index = [‘x’,’y’]
重新设置index : df.reindex(list(“abcedf”))实则是对dataframe进行取行
指定某一列作为index :df.set_index(“Country”,drop=False)默认为True,drop为False表示之前列充当索引的列名称依然保存
返回index的唯一值:df.set_index(“Country”).index.unique()

index是可以重复的。

索引也是可以复合的,复合索引,Series复合索引取值可以直接写在括号中,如t1[“one”,”h”]指one和h行,而DataFrame复合索引则不行,x.loc[“one”].loc[“h”]。

4、level相当于符合索引的里外层,交换了level之后,里外索引交换使用t1.swaplevel()

Original: https://blog.csdn.net/Kira_1899/article/details/118568705
Author: Kira_1899
Title: 数据分析(5)merge()、groupby()、索引相关操作

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/754693/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球