当前位置: 首页 > news >正文

day22 学习笔记

文章目录

  • 前言
  • 一、遍历
    • 1.行遍历
    • 2.列遍历
    • 3.直接遍历
  • 二、排序
  • 三、去重
  • 四、分组


前言

通过今天的学习,我掌握了对Pandas的数据类型进行基本操作,包括遍历,去重,排序,分组


一、遍历

1.行遍历

  • intertuples方法用于遍历Dataframe的行,返回包含行数据及命名的元组
data = {
    'A': [1, 2, 3],
    'B': [4, 5, 6],
    'C': [7, 8, 9]
}
df = pd.DataFrame(data, index=['a', 'b', 'c'])

# 使用 itertuples() 遍历行
for row in df.itertuples(index=False): #如果index为False,则结果过滤行索引信息
    print(row)
    for i in row:
        print(i)

tips:可以指定index参数,用于控制是否返回行索引信息

2.列遍历

  • items方法用于遍历Dataframe的列,返回包括列名和列数据的迭代器
data = {
    'A': [1, 2, 3],
    'B': [4, 5, 6],
    'C': [7, 8, 9]
}
df = pd.DataFrame(data, index=['a', 'b', 'c'])

# 使用 items() 遍历列
for column_name, column_data in df.items():
    print(f"Column Name: {column_name}, Column Data: {column_data}")

3.直接遍历

  • 使用index,columns属性进行遍历
data = {
    'A': [1, 2, 3],
    'B': [4, 5, 6],
    'C': [7, 8, 9]
}
df = pd.DataFrame(data, index=['a', 'b', 'c'])

for idx in df.index:
    for col in df.columns:
        print(df.loc[idx,col])

二、排序

  • sort_values方法用于对Dataframe进行排序
  • DataFrame.sort_values(by, axis=0, ascending=True, inplace=False, kind=‘quicksort’, na_position=‘last’)
  • by:列的标签或列的标签列表。指定要排序的列
  • ascending:布尔值或布尔值列表,指定是升序排序(True)还是降序排序(False)。可以为每个列指定不同的排序方向。
data = {
    'A': [3, 2, 1],
    'B': [6, 5, 4],
    'C': [9, 8, 7]
}
df = pd.DataFrame(data, index=['b', 'c', 'a'])

df_sorted = df.sort_values(by='A',ascending=False)
print(df_sorted)


df = pd.DataFrame({
    'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],
    'Age': [25, 30, 25, 35, 30],
    'Score': [85, 90, 80, 95, 88]
})
# 如果列中存在相同的值,可以指定两个列进行排序
df_sorted = df.sort_values(by=['Age', 'Score'], ascending=[False, True])
print(df_sorted)

三、去重

  • drop_duplicates方法用于删除重复行或元素
  • drop_duplicates(by=None, subset=None, keep=‘first’, inplace=False)
  • keep:指定如何处理重复项
  • by:用于标识重复项的列名或列名列表
data = {
    'A': [1, 2, 2, 3],
    'B': [4, 5, 5, 6],
    'C': [7, 8, 8, 9]
}
df = pd.DataFrame(data)

# 删除所有列的重复行,默认保留第一个出现的重复项
df_unique = df.drop_duplicates()
print(df_unique)

# 删除重复行,保留最后一个出现的重复项
df_unique = df.drop_duplicates(keep='last')
print(df_unique)

# 删除所有重复项
df_unique = df.drop_duplicates(keep=False)
print(df_unique)

四、分组

  • groupby方法用于对数据进行分组
  • DataFrame.groupby(by, axis=0, level=None, as_index=True, sort=True, group_keys=True, squeeze=False, observed=False, **kwargs)
  • by:指定分组的列名
data = {
        'A': ['foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'foo', 'foo'],
        'B': ['one', 'one', 'two', 'three', 'two', 'two', 'one', 'three'],
        'C': [1, 2, 3, 4, 5, 6, 7, 8],
        'D': [10, 20, 30, 40, 50, 60, 70, 80]
    }
df = pd.DataFrame(data)

# 按列'A'分组,返回一个对象
grouped = df.groupby('A')

# 查看分组结果
for name, group in grouped:
        print(f"Group: {name}")
        print(group)
        print()

mean = df.select_dtypes(include='number').groupby(df['A']).mean()
print(mean)
mean = df.groupby("A")["D"].mean() #如果不指定列,会计算所有列的均值
print(mean)

# transform用于在分组操作中对每个组内的数据进行转换,并将结果合并回原始 DataFrame
mean = df.groupby("A")["D"].transform(lambda x: x.mean())
# print(mean)
df['C_mean'] = mean
print(df)

THE END

相关文章:

  • 企业所得税怎么算2023年seo关键词优化报价
  • 济宁做网站哪家比较好网络营销的基本方法
  • 网站技术有哪些/合肥网站seo公司
  • 如何高效建设品牌网站?/百度一下首页官网下载
  • 深圳网站设计师/湖南网络推广公司大全
  • 怎么自己建网站赚钱/合川网站建设
  • 算法卷一:起行
  • 深入剖析C语言中的指针与数组
  • const let var 在react jsx中的使用方法 。
  • 蓝桥杯真题—路径之谜
  • 一文掌握 google浏览器插件爬虫 的制作
  • springboot-4S店车辆管理系统
  • 2024年博客之星的省域空间分布展示-以全网Top300为例
  • C++设计模式优化实战:提升项目性能与效率
  • 计算机软考中级 知识点记忆 — 编译型与解释型语言对比(Java、C、C++、Python)个人笔记
  • 使用jdk1.8.0_322 版本时, https不支持SSLv3协议问题, 多种解决方案
  • EasyExcel-一款好用的excel生成工具
  • Chapter03_数字图像的基本运算
  • 41--华为IPSec主备链路实验:当加密隧道遇上“双保险“
  • How to connect a mobile phone to your computer?
  • 软件工程第一章习题
  • 【微服务架构】SpringSecurity核心源码剖析+jwt+OAuth(三):SpringSecurity请求流转的本质
  • windows手动添加鼠标右键弹窗快捷方式
  • Kafka和RocketMQ相比有什么区别?那个更好用?
  • XXL-JOB 分片广播模式深度解析:从原理到实战
  • Linux/树莓派网络配置、远程登录与图形界面访问实验