【Python】【Numpy+Pandas数据处理·闯关】和鲸社区学习笔记day(2)

简介: 【Python】【Numpy+Pandas数据处理·闯关】和鲸社区学习笔记day(2)

1.创建DataFrame


data = {"col1":['Python', 'C', 'Java', 'R', 'SQL', 'PHP', 'Python', 'Java', 'C', 'Python'],
       "col2":[6, 2, 6, 4, 2, 5, 8, 10, 3, 4], 
       "col3":[4, 2, 6, 2, 1, 2, 2, 3, 3, 6]}
df = pd.DataFrame(data)
df

col1
col2 col3
0 Python 6 4
1 C 2 2
2 Java 6 6
3 R 4 2
4 SQL 2 1
5 PHP 5 2
6 Python 8 2
7 Java 10 3
8 C 3 3
9 Python 4 6


2. 设置索引


df['new_index'] = range(1,11)
df.set_index('new_index')



col1
col2 col3
new_index
1 Python 6 4
2 C 2 2
3 Java 6 6
4 R 4 2
5 SQL 2 1
6 PHP 5 2
7 Python 8 2
8 Java 10 3
9 C 3 3
10 Python 4 6


3.更改列名


#方法二:(使用rename()函数:修改指定修改某列或某几列名字)
df.rename(columns={'col1':'grammer', 'col2':'score', 'col3':'cycle','new_index':'id'}, inplace=True)
df.head()

grammer
score cycle id
0 Python 6 4 1
1 C 2 2 2
2 Java 6 6 3
3 R 4 2 4
4 SQL 2 1 5


4.更改全部列顺序


order = df.columns[[0, 3, 1, 2]] # 或者order = ['xx', 'xx',...] 具体列名
df = df[order]
df



score
id grammer cycle
0 6 1 Python 4
1 2 2 C 2
2 6 3 Java 6
3 4 4 R 2
4 2 5 SQL 1
5 5 6 PHP 2
6 8 7 Python 2
7 10 8 Java 3
8 3 9 C 3
9 4 10 Python 6


5.提取第一列位置在1,10,15上的值


# 方法一:
df.iloc[[1,10,15], 0]
# 方法二:
df['createTime'][[1,10,15]]
# 方法三:
df['createTime'].take([1,10,15])

out:

1 2020-03-16 10:58:48

10 2020-03-16 10:34:19

15 2020-03-16 10:52:14

Name: createTime, dtype: datetime64[ns]


6.判断数据框中所有行是否存在重复


df.duplicated()

fdf5aeafa881aef5a1ba03d23c02cd5d_cb1b20f6bec94351b5b2fe17b1d50a85.png


7. 判断education列和salary列数据是否重复(多列组合查询)


df.duplicated(subset = ['education','salary'])

0e9f11b8474b77448c506e8e2cb38160_7ad6f864de7b415dbba3ebd4cef857b0.png


8.提取value列元素值大于60小于70的行


df[(df['value'] > 60) & (df['value'] < 70)]


9.提取salary列包含字符串(‘–’)的行


# 方法一:isin()
df[df['salary'].isin(['--'])]
# 方法二:contains()
df[df["salary"].str.contains("--")]


10.提取value列和value1列出现频率最高的数字


# 先将两列使用append()按行合并,再用计数函数:
temp = df['value'].append(df['value1'])
temp.value_counts(ascending=False)#不加index,返回的是一个Series
temp.value_counts(ascending=False).index[:5] #返回一个数组


作业


import pandas as pd
import numpy as np
import re
data = pd.read_excel(r'pandas120.xlsx')
df = pd.DataFrame(data)
# 提取学历为本科,工资在25k-35k的数据
df1 = df.loc[df['education'].isin(['本科']) & df['salary'].isin(['25k-35k']), :]
# 提取salary列中以'40k'结尾的数据
df2 = df[df['salary'].str.endswith('40k')]
# 提取薪资区间中最低薪资与最高薪资的平均值大于30k的行,只需提取原始字段('createTime', 'education', 'salary')即可
salary = df
tmp = salary['salary'].str.extract(r'(\d+).*?(\d+)') # 正则匹配,分割字符串
salary['avg'] = ((tmp[0].astype('int') + tmp[1].astype('int')) / 2) # 切记 相加记得加小括号
df3 = salary[salary['avg'] > 30]
df3 = df3.drop(columns=['avg'])
# 将以上三题提取出来的行按照相同列进行合并,汇总到一个数据框中
answer_2 = pd.concat([df1, df2, df3], axis=0)
# 将三列数据合并成一列,并设置列名为answer,最后保留id(数据行数、answer)
data = pd.concat([answer_2.iloc[:, 0], answer_2.iloc[:, 1], answer_2.iloc[:, 2]])
df = pd.DataFrame(data, columns=['answer'])
df['id'] = range(len(df))
df = df[['id', 'answer']]
# 将结果保存为 csv 文件
df.to_csv(r'answer_2.csv', index=False, encoding='utf-8-sig')


收获


inplace = True表示在原DataFrame上进行操作 · pf.columns[索引]返回的是一个Index列表,可以用来作为.iloc[]的参数


· Pandas的insert()函数允许用户在指定的位置插入行和列。下面是insert()函数的语法:

DataFrame.insert(loc, column, value, allow_duplicates=False)

参数说明:

• loc:表示要插入的数据的位置,以整数形式表示。

• column:要插入的列名(如果未指定值,则必须传递列名)

• value:要插入的值。可以是单个值或一组值。

• allow_duplicates:如果设为True时,允许在同一位置上重复列名。

ps:已经存在的列的列名不能重复添加


· DataFrame对象

take函数是一个用于返回指定的行的函数。

语法:DataFrame.take(indices, axis=0, convert=None):

参数:

• indices:行的索引值(int或者list of ints)。

• axis:可选参数,默认值为0。

• convert: 可选参数,默认值为None。是否将索引转换为相应的列标签。

返回:Ndarray或者其他可迭代对象中存储的行元素。


·df.[] 里面也能对type为Series,数据为bool进行df数据筛选


相关文章
|
1天前
|
Python
python pandas学习(一)
该代码段展示了四个主要操作:1) 删除指定列名,如商品id;2) 使用正则表达式模糊匹配并删除列,例如匹配订单商品名称1的列;3) 将毫秒级时间戳转换为带有时区调整的日期时间格式,并增加8小时以适应本地时区;4) 将列表转换为DataFrame后保存为Excel文件,文件路径和名称根据变量拼接而成。
12 3
|
1天前
|
数据挖掘 数据处理 开发者
Pandas高级数据处理:实时数据处理
本文介绍了Pandas在实时数据处理中的应用,涵盖基础概念、常见问题及解决方案。Pandas是Python中强大的数据分析库,支持流式读取和增量更新数据,适用于大规模数据集的处理。通过分块读取、数据类型优化等方法,可有效解决内存不足等问题。文中还提供了代码示例,帮助读者更好地理解和掌握Pandas在实时数据处理中的使用技巧。
33 15
|
4天前
|
数据采集 数据可视化 数据处理
Pandas高级数据处理:数据仪表板制作
《Pandas高级数据处理:数据仪表板制作》涵盖数据清洗、聚合、时间序列处理等技巧,解决常见错误如KeyError和内存溢出。通过多源数据整合、动态数据透视及可视化准备,结合性能优化与最佳实践,助你构建响应快速、数据精准的商业级数据仪表板。适合希望提升数据分析能力的开发者。
57 31
|
5天前
|
数据采集 并行计算 数据可视化
Pandas高级数据处理:数据报告生成实战指南
数据报告生成面临数据质量、计算性能、呈现形式和自动化等核心挑战。常见问题包括缺失值导致统计失真、内存溢出及可视化困难。解决方案涵盖数据清洗、分块处理、安全绘图模板等。通过模块化设计、异常处理机制和性能优化策略,如使用`category`类型、并行计算等,可大幅提升效率。最佳实践建议建立数据质量检查清单、版本控制和自动化测试框架,确保系统具备自适应能力,提升报告生成效率300%以上。
38 12
|
6天前
|
数据可视化 数据挖掘 数据处理
Pandas高级数据处理:交互式数据探索
Pandas 是数据分析中常用的数据处理库,提供了强大的数据结构和操作功能。本文从基础到高级,逐步介绍 Pandas 中交互式数据探索的常见问题及解决方案,涵盖数据读取、检查、清洗、预处理、聚合分组和可视化等内容。通过实例代码,帮助用户解决文件路径错误、编码问题、数据类型不一致、缺失值处理等挑战,提升数据分析效率。
76 32
|
7天前
|
存储 安全 数据处理
Pandas高级数据处理:数据安全与隐私保护
在数据驱动的时代,数据安全和隐私保护至关重要。本文探讨了使用Pandas进行数据分析时如何确保数据的安全性和隐私性,涵盖法律法规要求、用户信任和商业价值等方面。通过加密、脱敏、访问控制和日志审计等技术手段,结合常见问题及解决方案,帮助读者在实际项目中有效保护数据。
52 29
|
8天前
|
存储 安全 数据处理
Pandas高级数据处理:数据加密与解密
本文介绍如何使用Pandas结合加密库(如`cryptography`)实现数据加密与解密,确保敏感信息的安全。涵盖对称和非对称加密算法、常见问题及解决方案,包括密钥管理、性能优化、字符编码和数据完整性验证。通过示例代码展示具体操作,并提供常见报错的解决方法。
47 24
|
10天前
|
存储 算法 数据处理
Pandas高级数据处理:数据压缩与解压
本文介绍 Pandas 中的数据压缩与解压技术,探讨其在大数据集存储、远程传输和备份归档中的应用场景。Pandas 支持多种压缩格式(如 `.gzip`、`.bz2`、`.zip`),通过 `compression` 参数轻松实现数据的压缩与解压。文中还提供了常见问题的解决方案,如文件扩展名不匹配、内存不足和性能优化,并介绍了自动检测压缩格式和组合压缩加密的高级技巧。掌握这些功能可显著提升数据处理效率。
46 20
|
11天前
|
监控 物联网 数据处理
Pandas高级数据处理:数据流式计算
本文介绍了如何使用 Pandas 进行流式数据处理。流式计算能够实时处理不断流入的数据,适用于金融交易、物联网监控等场景。Pandas 虽然主要用于批处理,但通过分块读取文件、增量更新 DataFrame 和使用生成器等方式,也能实现简单的流式计算。文章还详细讨论了内存溢出、数据类型不一致、数据丢失或重复及性能瓶颈等常见问题的解决方案,并建议在处理大规模数据时使用专门的流式计算框架。
138 100
Pandas高级数据处理:数据流式计算
|
12天前
|
数据采集 数据挖掘 物联网
Pandas高级数据处理:实时数据处理
本文介绍了如何使用Pandas进行实时数据处理,涵盖从基础到高级的技巧。Pandas作为Python中流行的数据处理库,提供了高效的DataFrame和Series结构,适用于金融、社交媒体和物联网等领域的数据分析。文章详细讲解了数据读取、清洗、转换及常见问题的解决方案,如内存不足、数据不一致和性能瓶颈,并提供了避免常见报错的方法,帮助读者更高效地处理实时数据。
53 15

热门文章

最新文章

推荐镜像

更多