pandas操作

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# df = pd.DataFrame({'key1': ['a', 'a', 'b', 'b', 'a'],
#                   'key2': ['one', 'two', 'one', 'two', 'one'],
#                   'data1': np.random.randint(1, 10, 5),
#                   'data2': np.random.randint(1, 10, 5)})
# # print (df)
# # print (df.data1)
# # 对 Series 进行分组,通过索引对齐关联起来
# grouped = df['data1'].groupby(df['key1'])
# print(grouped.mean())
# # grouped=df['data1'].groupby([df['key1'], df['key2']])
# # grouped=df.groupby(df['key1'])
# # print(grouped.sum())
# for name,group in df.groupby('key1'):
#     print (name)
#     print (group)
# # 根据key1分组可分为两个分组,a和b。可以直接迭代groupby().
# # 由于groupby()支持迭代器协议,可以将其转换为列表/字典
# dict(list(df.groupby('key1')))
# # 这个字典的元素
# dict(list(df.groupby('key1')))['a']
# df = pd.DataFrame(np.random.randint(1, 10, (5, 5)),
#                   columns=['a', 'b', 'c', 'd', 'e'],
#                   index=['Alice', 'Bob', 'Candy', 'Dark', 'Emily'])
# # 赋值为非数字,观察对非数字的处理
# df.iloc[1, 1:3] = np.NaN
# print(df)
# # # 新建映射字典
# mapping = {'a': 'red', 'b': 'red', 'c': 'blue', 'd': 'orange', 'e': 'blue'}
# # 新建字典,用字典映射分组
# grouped = df.groupby(mapping, axis=1) #映射是根据列作的,所以用列分组
# # 分组计算
# print(grouped.sum())
# print (grouped.count())
# print (grouped.size())
# # 当函数作为分组依据时,数据表里的每个索引(可以是行索引,也可以是列索引)都会调用一次函数,函数的返回值作为分组的索引,即相同的返回值分在同一组。
# df = pd.DataFrame(np.random.randint(1, 10, (5, 5)),
#                   columns=['a', 'b', 'c', 'd', 'e'],
#                   index=['Alice', 'Bob', 'Candy', 'Dark', 'Emily'])
# df
# # 定义函数
# def _dummy_group(idx): #函数的参数就是分组时要计算的分组的名字
#     print(idx) #打出索引名
#     return idx #返回索引名字
# df.groupby(_dummy_group)
# df.groupby(_dummy_group).size()
# grouped = df.groupby(_dummy_group)
# grouped.sum()
# grouped.size()
# grouped.count()
#
# # 重新定义函数
# def _dummy_group(idx): #
#     print(idx)
#     return len(idx)
# df.groupby(_dummy_group,axis=1)
# grouped = df.groupby(len)
# grouped.sum()
# grouped.size()
# grouped.count()
#
# # 可以直接按照长度len()来分组
# # df.groupby(len).size()
# columns = pd.MultiIndex.from_arrays([['China', 'USA', 'China', 'USA', 'China'],
#                                      ['A', 'A', 'B', 'C', 'B']], names=['country', 'index'])
# # df = pd.DataFrame(np.random.randint(1, 10, (5, 5)), columns=columns)
# # print (df)
# # # columns的countyy索引分组
# # df.groupby(level='country', axis=1).count() #必须指定axis=1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值