Python数据分析库Pandas (3)

   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()

    # 按照两个列进行分组

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zggddj.html