on是一个键,how=\'left\' 根据两个表,用第一个表 how=\'right\' 根据两个表 ,用第二个表
指定参考键:我想用左边的lkey列作为左边的参考键, 我想用右边表的index 作为 参考键 (两个数据表合并比较)
(left_index right_index 左边(设置True就行) left_on right_on 这俩on(还是制定 index只不过分开指定,左表,右表说法) )
代码展示dataG = pd.DataFrame({\'key\':list(\'abcdedf\'),\'list\':range(7)});
dataW = pd.DataFrame({\'key\':list(\'abcdedf\'),\'list\':range(3,10)});
print(pd.merge(dataG,dataW,on=[\'list\'],how=\'outer\'))
how =\'outer\' 根据list为合并的条件,用了outer 没有达到要求的NaN补全
print(pd.merge(df1, df2, left_on=\'key\', right_index=True))
左边的指定键 为key,右边的表用 角标index 为键 合并比较
数据连接
两个DataFrame 连接,通过pd.concat([数组表1,数组表2]).sort_index() 角标顺序排列连接
两个DataFrame 连接,通过 pd.concat([数组表1,数组表2]),axis=1 列+列 成为一个DataFrame ,空的位置 用 NaN补全
inplace
两个Series pd.reset_index(inplace=True).drop = True
一个Series一维,重置了他的index值,0 1 2 3 4 5 6 然后吧替换之前的index 设置为一个列,drop 设置True 就是问你是否删除这个之前的;列
去重
按照 s.duplicate() 就会出现一个 True False 的列表 , 打印出 s[s.s.duplicate() == False] False 就代表不重复的值
replace
replace(\'a\',\'w\') replace([\'a\',\'b\'],50) 都可以进行一个替换
DataFrame 数据分组(简称列分组)
根据数据列columns名字,分组,并计算处理,得出数据 求和、平均值、长度、常用的一些列计算
简单解释语句:
df.groupby(\'A\') 通过A列,里面的数据 只要不一样就会成组, 分成一个组然后 计算
df.groupby([\'A\',\'B\']).mean() 通过A/B两列,里面的数据,只要A 和 B两个组成不同的配对,就可以成组,计算
df.groupby([\'A\'])[\'D\'].mean() # 以A分组,算D的平均值
分组后 类型格式为 groupby类型, 经过处理后 得出 可迭代对象,可以是数组、元祖、字典 一一对应操作方法
print(list(df.groupby(\'X\')), \'→ 可迭代对象,直接生成list\n\')
print(list(df.groupby(\'X\'))[0], \'→ 以元祖形式显示\n\')
for n,g in df.groupby(\'X\'):
print(n)
print(g)
print(\'###\') # n是组名,g是分组后的Dataframe
# .get_group()提取分组后的组
print(df.groupby([\'X\']).get_group(\'A\'),\'\n\')
# .groups:将分组后的groups转为dict
# 可以字典索引方法来查看groups里的元素
grouped = df.groupby([\'X\'])
print(grouped.groups)
print(grouped.groups[\'A\']) # 也可写:df.groupby(\'X\').groups[\'A\']
# .size():查看分组后的长度
grouped.size()
# 按照两个列进行分组