数据分析——pandas玩转数据分析

pandas第一讲——利用pandas创建excel文件

import pandas as  pd  
# 导入pandas包
df=pd.DataFrame()
# 定义一个变量  变量类型是dataFrame
df.to_excel("F:/桌面杂碎/output.xlsx")
# 将变量保存成excel类型,保存地址为F盘
print("done!")

pandas中最重要和基础的就是dataFrame(数据帧)的使用

建立一个有数据的excel表格,使用dataFrame并用字典形式表示

import pandas as  pd
# 导入pandas包
df=pd.DataFrame({'ID':[1,2,3],'Name':['LU','MU','lucy']})
# 定义一个变量  变量类型是dataFrame
df.to_excel("F:/桌面杂碎/output.xlsx")
# 将变量保存成excel类型,保存地址为F盘
print("done!")

数据分析——pandas玩转数据分析_第1张图片

set_index的用法 :用来更改索引信息,上面例子是excel自动生成的索引序号,我们可以通过该方法将ID的信息作为索引

import pandas as  pd
# 导入pandas包
df=pd.DataFrame({'ID':[1,2,3],'Name':['LU','MU','lucy']})
# 定义一个变量  变量类型是dataFrame
a=df.set_index('ID')
# df.to_excel("F:/桌面杂碎/output.xlsx")
# 将变量保存成excel类型,保存地址为F盘
print(df)
print(a)

pandas第二讲——用series创建excel的行和列

在excel中,一个单元格既可以用行表示,也可以用列表示,在pandas中对应的就是序列表示“series”,series和python中的字典很像,字典里的key值相当于series的index值,字典里valu的值相当于series的data值。

import pandas as pd
d = {"name": "luyi", 'age': 23, 'sex': "女"}
print(d.keys())
print(d.values())
s1=pd.Series(d)
将字典类型的数据转变成series
print(s1.index)

其他的写法:

m = ["name", 'age', 'sex']
n = ['luyi', 23, 'nv']
s2 = pd.Series(n, index=m)
s3 = pd.Series(['luyi', 23, 'nv'],["name", 'age', 'sex'])

将series类型的数据按照列形成excel数据

s1 = pd.Series([1, 2, 3], index=[1, 2, 3], name='A')
s2 = pd.Series([11, 21, 31], index=[1, 2, 3], name='B')
s3 = pd.Series([12, 23, 34], index=[1, 2, 3], name='C')
df=pd.DataFrame({s1.name:s1,s2.name:s2,s3.name:s3})
print(df)

将series类型的数据按照行形成excel数据

s1 = pd.Series([1, 2, 3], index=[1, 2, 3], name='A')
s2 = pd.Series([11, 21, 31], index=[1, 2, 3], name='B')
s3 = pd.Series([12, 23, 34], index=[1, 2, 3], name='C')
# df=pd.DataFrame({s1.name:s1,s2.name:s2,s3.name:s3})
df=pd.DataFrame([s1,s2,s3])
print(df)

pandas第三讲——用pandas读取excel数据

detail = pd.read_excel("F:/桌面杂碎/meal_order_detail.xlsx")
# print(detail.shape)
# # 查看excel表格中数据量的行数和列数
# print(detail.head())
# # 查看表格中前几行的数据
# print(detail.tail())
# # 查看表格中后几行的数据
print(detail.columns)
# 查看表格中列表的属性
处理excel表格中的脏数据   比如  在表格中篡位 前几列的数据不是我们所需要的
detail = pd.read_excel("F:/桌面杂碎/meal_order_detail.xlsx",header=3)
遇到表格中没有列名的  我们可以手动添加
detail = pd.read_excel("F:/桌面杂碎/output.xlsx",header=None)
detail.columns=['name','age','sex']
print(detail.columns)
detail.set_index('age',inplace=True)
detail=pd.to_excel("F:/桌面杂碎/output.xlsx")

pandas第四讲——用pandas实现excel的自动填充

补充:
import pandas as pd
books=pd.read_excel('F:/桌面杂碎/output.xlsx')
# 遇到表格不是从顶头起始,我们可以跳跃某些行或者列准确找到表格的位置
books=pd.read_excel('F:/桌面杂碎/output.xlsx',skiprows=3,usecols='C:F')
# 表示跳过前三行  从c列开始读数据 读到F为止

print(books)

利用at和循环实现excel的自动填充(注意写法)

import pandas as pd

df = pd.read_excel('F:/桌面杂碎/output.xlsx', skiprows=7, usecols='I:N',dtype={'ID':str})
print(df.columns)
for i in df.index:
    df['ID'].at[i] = i+1
df.to_excel('F:/桌面杂碎/output.xlsx')
print('done!')
df = pd.read_excel('F:/桌面杂碎/output.xlsx')
df.set_index('ID',inplace=True)
df['trade'] = df['Price'] * df['discount']
# 在pandas中数据间的操作是以series为单位的,并不是一个值一个值的操作
print(df)

这种方法相比于上面的方法要麻烦,比较适用于只对某一段内容进行操作

df = pd.read_excel('F:/桌面杂碎/output.xlsx')
df.set_index('ID', inplace=True)
# df['trade'] = df['Price'] * df['discount']
# 在pandas中数据间的操作是以series为单位的,并不是一个值一个值的操作

for i in range(2, 4):
    df['trade'].at[i] = df['Price'].at[i] * df['discount'].at[i]
print(df)

用两种方法实现数据操作

1、数据间的操作是以列为单位进行操作

df = pd.read_excel('F:/桌面杂碎/output.xlsx')
df.set_index('ID', inplace=True)
df['Price'] = df['Price'] + 2
print(df)

2、利用series中的apply函数实现复杂变换 apply括号内的内容为函数的名字 不带括号

def add(x):
    return x + 2
df['Price']=df['Price'].apply(add)
print(df)

利用pandas实现表格数据的多重排序

import pandas as pd
df = pd.read_excel('F:/桌面杂碎/output.xlsx')
# 按照价格从高到低进行排序
# df.sort_values(by='Price',inplace=True,ascending=False)
df.sort_values(by='worthy',inplace=True)
# 按照worthy和价格一起排序
df.sort_values(by=['worthy','Price'],inplace=True,ascending=[True,False])
print(df)

你可能感兴趣的:(python,数据分析)