zoukankan      html  css  js  c++  java
  • Pandas数据分析 (三)

    Pandas 数据转换、分组、融合

    Pandas 数据融合

    • concat() 方法
    • merge() 方法

    concat

     1 frames = [df, ds]
     2 # axis=1 横向  axis=0 纵向
     3 pd.concat(frames, axis=0)
     4 
     5 # 取并集
     6 pd.concat(frames, axis=0, join="outer")
     7 # 取交集
     8 pd.concat(frames, axis=0, join="inner")
     9 
    10 d1 = pd.DataFrame([22, 33], index=["身高", "体重"], columns=["张三"])
    11 d2 = pd.DataFrame([33, 44], index=["身高", "体重"], columns=["李四"])
    12 frames = [d1, d2]
    13 
    14 pd.concat(frames, axis=1, join="inner")
    15 
    16 df1 = pd.DataFrame({'年龄': [22, 26],
    17                                       '籍贯': ['北京','河北']},
    18                                       index=['张某', '李某'])
    19 df2 = pd.DataFrame({'身高': [175, 180],
    20                                       '体重': [70, 85]},
    21                                       index=['张某', '李某'])
    22 df3 = pd.DataFrame({'身高': [175, 183],
    23                                       '体重': [70, 87]},
    24                                       index=['张某', '钱某'])
    25 
    26 pd.concat([df1, df3], axis=1, join="inner")

    merge

     1 left = pd.DataFrame({'姓名': ['张某', '李某','段某'],
     2                                        '年龄': [20, 26,24]}) 
     3 right = pd.DataFrame({'姓名': ['张某', '李某','钱某'],
     4                                          '籍贯': ['北京','河北','江苏']}) 
     5 
     6 pd.merge(left, right, left_index=True, right_on="姓名", how="outer")
     7 
     8 # 按照索引方式
     9 pd.merge(left, right, left_index=True, right_index=True, how="outer")
    10 # 相对之,按照 join  实例的方法实现融合更简单, join 默认为左连接
    11 left.join(right, how="outer")

    数据融合 combine_first实例方法实现了用参数对象中的数据为调用对象的缺失数据打补丁

    1 df2.combine_first(df1)  # 根据 df1中的值去填补df2中的缺失值

    排序

    • sort_index 根据索引进行排序
    • sort_values 根据某列的值进行排序
    • 随机重排
      1 df.sort_values('score', ascending=False)  # 调整 ascending 来判断是升序还是降序,默认是True,升序
      2 # 产生一个随机重排序列的索引
      3 sampler = np.random.permutation(3)
      4 sampler
      5 df.take(sampler)

    GroupBy 技术

    • 使用 groupby() 方法可以沿着任意轴进行分组,并且将分组依据的键作为每组的组名,有三种方法
      • df.groupby(key)
      • df.groupby(key, axis=1)
      • df.groupby([key1, key2])

     

    数据分组的基本方法

    • 分组大小和分组排序
    • 对分组进行迭代
    • 选择指定组或组内的列
  • 相关阅读:
    HDU 1286(欧拉函数||筛选法)
    因数打表(HDU1215)
    HDU 1003
    T行数据跟着N个数据
    15校赛
    HDU 1002
    简单大数相加
    (质因子打表记录素数的位置)HDU Largest prime factor
    HDU cake
    【转】 cin、cin.get()、cin.getline()、getline()、gets()等函数的用法
  • 原文地址:https://www.cnblogs.com/xmdykf/p/12205349.html
Copyright © 2011-2022 走看看