python笔记

VSCode下载:https://code.visualstudio.com/Download

Miniconda下载:https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Windows-x86_64.exe

基于链接下载VSCode和Miniconda

Miniconda环境配置

创建环境

conda create -n env_name python=3.10

进入环境

conda activate env_name

退出环境

conda deactivate

Jupyter Notebook 使用

安装

pip install jupyter

打开

jupyter notebook

python详细教程

聪明办法学Python:https://datawhalechina.github.io/learn-python-the-smart-way-v2/

菜鸟教程:https://www.runoob.com/python3/python3-basic-syntax.html

with open("1523.txt",'w') as f:                with open("1523.txt",'w') as f:

      f.write(  )                                                  print(f.read())

pandas

导入numpy和pandas

import numpy as np

import pandas as pd

载入数据,使用相对路径和绝对路径

df = pd.read_csv('./train.csv')        df = pd.read_csv(r'D:\pands入门\train.csv'

df                                                   df

每1000行为一个数据块,逐块读取

chunker = pd.read_csv('./train.csv',chunksize=10)

for i in chunker:

    print(i)

将表头改成中文,索引改为乘客ID [对于某些英文资料,我们可以通过翻译来更直观的熟悉我们的数据]

PassengerId => 乘客ID    Survived=> 是否幸存    Pclass=> 乘客等级(1/2/3等舱位)  

Name=> 乘客姓名  Sex=> 性别      Age=> 年龄      SibSp=> 堂兄弟/妹个数  

Parch=> 父母与小孩个数  Ticket => 船票信息     Far => 票价                

Cabin  => 客舱                Embarked  => 登船港口        

df = pd.read_csv('train.csv',names=['乘客ID','是否幸存','乘客等级(1/2/3等舱位)','乘客姓名','性别','年龄','堂兄弟/妹个数','父母与小孩个数','船票信息','票价','客舱','登船港口'],index_col='乘客ID',header = 0)

df

查看数据的基本信息

df.info()

观察表格的前几行和后几行

df.head(10)               df.tail(10)

判读数据是否为空,不为空返回False,为空返回True

df.isnull()

将你加载并做出改变的数据,在工作目录下保存为一个新文件train_chinese.csv

# 注意:不同的操作系统保存下来可能会有乱码。大家可以加入`encoding='GBK' 或者 ’encoding = ’utf-8‘‘`

df.to_csv('train_chinese.csv')

查看DataFrame数据的每列的名称

 df.columns

查看"Cabin"这列的所有值

df['Name'].head(3)          df.Name.head(3)

加载文件"test_1.csv",然后对比"train.csv",看看有哪些多出的列,然后将多出的列删除

test1 = pd.read_csv('test_1.csv')

test1

del test1['a']

test1.head(3)

将['PassengerId','Name','Age','Ticket']这几个列元素隐藏,只观察其他几个列元素

df.drop(['PassengerId','Name','Age','Ticket'],axis=1).head(3)

我们以"Age"为筛选条件,显示年龄在10岁以下的乘客信息。

df[df['Age']<10].head(3)

以"Age"为条件,将年龄在10岁以上和50岁以下的乘客信息显示出来,并将这个数据命名为midage

midage = df[(df['Age']>10)&(df['Age']<50)]

midage.head(3)

将midage的数据中第100行的"Pclass"和"Sex"的数据显示出来

midage.loc[[100],['Pclass','Sex']]

使用loc方法将midage的数据中第100,105,108行的"Pclass","Name"和"Sex"的数据显示出来

midage.loc[[100,105,108],['Pclass','Name','Sex']]

使用iloc方法将midage的数据中第100,105,108行的"Pclass","Name"和"Sex"的数据显示出来

midage.iloc[[100,105,108],[2,3,4]]

利用Pandas对示例数据进行排序,要求升序

#自己构建一个都为数字的DataFrame数据

frame = pd.DataFrame(np.arange(8).reshape((2, 4)),

                     index=['2', '1'],

                     columns=['d', 'a', 'b', 'c'])

frame

pd.DataFrame() :创建一个DataFrame对象

np.arange(8).reshape((2, 4)) : 生成一个二维数组(2*4),第一列:0,1,2,3 第二列:4,5,6,7

index=['2, 1] :DataFrame 对象的索引列

columns=['d', 'a', 'b', 'c'] :DataFrame 对象的索引行

# 大多数时候我们都是想根据列的值来排序,所以,将你构建的DataFrame中的数据根据某一列,升序排列

frame.sort_values(by='c',ascending=True)

# 让行索引升序排序

frame.sort_index()

# 让列索引升序排序

frame.sort_index(axis=1)

# 让列索引降序排序

frame.sort_index(axis=1,ascending=False)

# 让任选两列数据同时降序排序

frame.sort_values(by=['a','c'],ascending=False)

利用Pandas进行算术计算,计算两个DataFrame数据相加结果

frame1_a = pd.DataFrame(np.arange(9.).reshape(3, 3),

                     columns=['a', 'b', 'c'],

                     index=['one', 'two', 'three'])

frame1_b = pd.DataFrame(np.arange(12.).reshape(4, 3),

                     columns=['a', 'e', 'c'],

                     index=['first', 'one', 'two', 'second'])

frame1_a + frame1_b

两个DataFrame相加后,会返回一个新的DataFrame,对应的行和列的值会相加,没有对应的会变成空值NaN。

通过泰坦尼克号数据如何计算出在船上最大的家族有多少人?

max(text['堂兄弟/妹个数'] + text['父母与小孩个数'])

学会使用Pandas describe()函数查看数据基本统计信息

frame2 = pd.DataFrame([[1.4, np.nan],

                       [7.1, -4.5],

                       [np.nan, np.nan],

                       [0.75, -1.3]

                      ], index=['a', 'b', 'c', 'd'], columns=['one', 'two'])

frame2

# 调用 describe 函数,观察frame2的数据基本信息

count : 样本数据大小

mean : 样本数据的平均值

std : 样本数据的标准差

min : 样本数据的最小值

25% : 样本数据25%的时候的值

50% : 样本数据50%的时候的值

75% : 样本数据75%的时候的值

max : 样本数据的最大值

frame2.describe()

DATAFRAME

处理缺失数据:DataFrame 可以包含缺失数据,Pandas 使用 NaN(Not a Number)来表示

data:DataFrame 的数据部分,可以是字典、二维数组、Series、DataFrame 或其他可转换为 DataFrame 的对象。如果不提供此参数,则创建一个空的 DataFrame。

index:DataFrame 的行索引,用于标识每行数据。可以是列表、数组、索引对象等。如果不提供此参数,则创建一个默认的整数索引。

columns:DataFrame 的列索引,用于标识每列数据。可以是列表、数组、索引对象等。如果不提供此参数,则创建一个默认的整数索引。

dtype:指定 DataFrame 的数据类型。可以是 NumPy 的数据类型,例如 np.int64、np.float64 等。如果不提供此参数,则根据数据自动推断数据类型。

copy:是否复制数据。默认为 False,表示不复制数据。如果设置为 True,则复制输入的数据

实例 - 使用列表创建

import pandas as pd

data = [['Google', 10], ['Runoob', 12], ['Wiki', 13]]

# 创建DataFrame
df = pd.DataFrame(data, columns=['Site', 'Age'])

# 使用astype方法设置每列的数据类型
df['Site'] = df['Site'].astype(str)
df['Age'] = df['Age'].astype(float)

print(df)

实例 - 使用字典创建

import pandas as pd

data = {'Site':['Google', 'Runoob', 'Wiki'], 'Age':[10, 12, 13]}

df = pd.DataFrame(data)

print ()

CSV

 csv文件是一种用,和换行符区分数据记录和字段的一种文件结构,可以用excel表格编辑,也可以用记事本编辑,是一种类excel的数据存储文件,也可以看成是一种数据库.

df.to_csv 写入到 csv 文件
pd.read_csv 读取 csv 文件
df.to_json 写入到 json 文件
pd.read_json 读取 json 文件
df.to_html 写入到 html 文件
pd.read_html 读取 html 文件
df.to_excel 写入到 excel 文件
pd.read_excel 读取 excel 文件


 

pandas使用chunksize分块处理大型csv文件

想使用分块处理,只需在read_csv()方法中加入chunksize=100000(这里假设每一块有100000行),代码如下:

df=pd.read_csv('data.csv',header=None,chunksize=100000)


然后使用for循环去每块每块地去处理(chunk的type是DataFrame):

for chunk in df:
    print(chunk)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值