pandas操作excel之groupby

import pandas as pd
import random
data = pd.read_excel('30.xlsx');
test = data.groupby('条件列')

将数据进行特征分组,以便于计算.我们来看代码

import pandas as pd
data = pd.read_excel('30.xlsx');
test = data.groupby('条件列')
for i,o in test:
    print(o)

   条件列  level_1  ID
0  113        3   4
   条件列  level_1  ID
1  114        6   7
    条件列  level_1  ID
2   115        7   8
3   115       47  48
4   115       52  53
5   115       54  55
6   115       31  32
7   115       61  62
8   115       58  59
9   115       26  27
10  115       23  24
11  115       25  26
12  115       36  37
13  115       27  28
14  115        8   9
15  115       29  30
16  115       57  58
17  115       34  35
18  115       48  49
    条件列  level_1   ID
19  116      187  188
20  116      253  254
21  116      137  138
22  116      280  281
23  116      123  124
..  ...      ...  ...

91  116      195  196
92  116      245  246
93  116      310  311
94  116      308  309
95  116      239  240

[77 rows x 3 columns]

Pandas sample()用于从DataFrame中随机选择行和列。

DataFrame.sample(n=None, frac=None, replace=False, weights=None, random_state=None, axis=None)

n:这是一个可选参数, 由整数值组成, 并定义生成的随机行数。
frac:它也是一个可选参数, 由浮点值组成, 并返回浮点值数据帧值的长度。不能与参数n一起使用。
replace:由布尔值组成。如果为true, 则返回带有替换的样本。替换的默认值为false。
weights:它也是一个可选参数, 由类似于str或ndarray的参数组成。默认值”无”将导致相等的概率加权。
如果正在通过系列赛;它将与索引上的目标对象对齐。在采样对象中找不到的权重索引值将被忽略, 而在采样对象中没有权重的索引值将被分配零权重。
如果在轴= 0时正在传递DataFrame, 则返回0。它将接受列的名称。
如果权重是系列;然后, 权重必须与被采样轴的长度相同。
如果权重不等于1;它将被标准化为1的总和。
权重列中的缺失值被视为零。
权重栏中不允许无穷大。
random_state:它也是一个可选参数, 由整数或numpy.random.RandomState组成。如果值为int, 则为随机数生成器或numpy RandomState对象设置种子。
axis*:它也是由整数或字符串值组成的可选参数。 0或”行”和1或”列”。

DataFrame.reset_index(level=None, drop=False, inplace=False, col_level=0, col_fill='')

level:数值类型可以为:int、str、tuple或list,默认无,仅从索引中删除给定级别。默认情况下移除所有级别。控制了具体要还原的那个等级的索引 。

drop: 当指定 drop=False时,则索引列会被还原为普通列;否则,经设置后的新索引值被会丢弃。默认为 False

inplace:输入布尔值,表示当前操作是否对原数据生效,默认为 False

col_level: 数值类型 为int或str,默认值为0,如果列有多个级别,则确定将标签插入到哪个级别。默认情况下,它将插入到第一级。

col_fill:对象,默认”,如果列有多个级别,则确定其他级别的命名方式。如果没有,则重复索引名。

四、实例分析

import pandas as pd
data = pd.read_excel('30.xlsx');
test = data.groupby('条件列').ID.apply(lambda x: x.sample(frac=0.3)).reset_index()
print(test)

学习上面内容后,我们分析上面代码:

1.读取文件

  1. groupby()进行特征划分

3.选取 ID列操作

  1. apply(lambda x: x.sample(frac=0.3))展开为:
def test(x):
  return x.sample(frac=0.3)
  1. reset_index()方法进行恢复原数据索引以及格式

Original: https://blog.csdn.net/qq_17802895/article/details/119548069
Author: 阿狸的情书
Title: pandas操作excel之groupby

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/740981/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球