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/
转载文章受原作者版权保护。转载请注明原作者出处!