Python数据分析练习20题

1.使用List构造Series

import pandas as pd

name = ['zhangsan', 'lisi', 'Jack_Python']
obj = pd.Series(name)
print(obj)

2.使用字典构造Series

name = {'zhangsan':'alibaba', 'lisi':'tencent', 'Jack_Python':'huawei'}
obj = pd.Series(name)
print(obj)

3.将Series转为List结构

name = {'zhangsan':'alibaba', 'lisi':'tencent', 'Jack_Python':'huawei'}
obj = pd.Series(name)
# 使用tolist()方法将Series转换为列表
print(obj.tolist())
# 先调用index将Series转换为列表
# print(obj.index)
print(list(obj.index))

4.将Series转换为DateFrame

import pandas as pd

name = {'zhangsan':'alibaba', 'lisi':'tencent', 'Jack_Python':'huawei'}
obj = pd.Series(name)

df = pd.DataFrame(obj,columns=['company'])
print(df)

5.转换Series的数据类型

import pandas as pd

words = ['001', '002', '003', '004', '005']
obj_series = pd.Series(data=words,index=list("abcde"))

obj = obj_series.map(int) #将data=words这一列中的数据都转换为int类型
# print(obj)
print(obj.astype(float)) #将Series里的所有数据转换为float类型

6.给Series添加元素

kv = {
    'zhangsan':'alibaba',
    'lisi':'tencent',
    'Jack_Python':'huawei'
}
data = pd.Series(data = kv)

data1 = pd.Series({'zhubajie':'jingdong', 'sunwukong':'baidu'})
print(pd.concat([data,data1]))

7.使用Numpy创建Series

import pandas as pd
import numpy as np

num = pd.Series(
    data = np.arange(10,100,20), # 列索引
    index = np.arange(101,106), # 行索引
    dtype = 'float' # 数据类型
)
print(num)

8.创建一个DataFrame

import pandas as pd

data = {
    "姓名":['zhangsan','lisi','jack_python'],
    "公司":['alibaba','tencent','baidu'],
    "城市":['杭州','深圳','背景']
}
data_frame = pd.DataFrame(data)
print(data_frame)

9.设置DataFrame索引列

import pandas as pd

data = {
    "姓名":['zhangsan','lisi','jack_python'],
    "公司":['alibaba','tencent','baidu'],
    "城市":['杭州','深圳','背景']
}
df = pd.DataFrame(data)
# 调用set_index方法设置索引
print(df.set_index('城市'))

10.生成一年的所有天

import pandas as pd

r = pd.date_range(start='2022-01-01', end='2022-12-31')
print(r)

11.生成一年的所有星期天

import pandas as pd

r = pd.date_range('2024-01-01',periods=52,freq='W-SUN') # periods:这个参数指定了要生成的日期序列的数量。freq:这个参数指定了日期序列的频率.
print(r)

data_range方法的详细用法如下:

pandas.date_range()用法_pandas date range-CSDN博客

12.生成一天中的所有小时

import pandas as pd

r = pd.date_range('2024-05-01',periods=24,freq='h')
print(r)

13.计算每天是一年当中的第几天

import pandas as pd

r = pd.date_range('2024-05-01',periods=31)
df = pd.DataFrame(data=r,columns=['day'])
df['day_of_year'] = df['day'].dt.day_of_year # 将df的day列转换为一年中的第几天,并将结果存储在新的 day_of_year 列中。
print(df)

14.打印DataFrame前后N行

import pandas as pd

df = pd.read_excel('日期参数.xlsx')
# print(df.shape) # 行和列

print(df.head(5)) # 前五行
# print(df.tail(5)) # 后五行

15.查看DF基本信息和数据统计

import pandas as pd

df = pd.read_excel("日期参数.xlsx")

# print(df.info()) # 查看数据集信息
print(df.describe()) # 查看数据集统计信息

16.统计excel数据列的次数

import pandas as pd

df = pd.read_excel("日期参数.xlsx")

# print(df.info()) # 查看数据集信息
# print(df.describe()) # 查看数据集统计信息
print(df['Gender'].value_counts())

17.获取数据中最大/最小的N个数

import pandas as pd

df = pd.read_excel("日期参数.xlsx")

# df['Grade'].nlargest(3):这个方法返回 df 数据框中 Grade 列中最大的三个值(默认返回五个)。
# df['Grade'].nsmallest(3):这个方法返回 df 数据框中 Grade 列中最小的三个值(默认返回五个)。
# reset_index():这个方法将索引重置为默认的整数索引。
print(df['Grade'].nlargest().reset_index())
# print(df['Grade'].nsmallest().reset_index())

18.DF的前N行数据存储CSV、EXCEL

import pandas as pd
import numpy as np

df = pd.DataFrame(
    data={
        #正态分布1000个随机数,loc=0,scale=1
        'norm': np.random.normal(loc=0, scale=1, size=100),
        #均匀分布1000个随机数,low=0,high=1
        'uniform': np.random.uniform(low=0, high=1, size=100),
        #二项分布1000个随机数,n=1,p=0.2
        'binomial': np.random.binomial(n=1, p=0.2, size=100),
    },index=pd.date_range(start='2024-04-01',name='date',periods=100)
)
# print(df)
df.to_csv('data.csv', index=True)
df.to_excel('data.xlsx', index=True)

19.加载CSV文件为DataFrame

import pandas as pd

df = pd.read_csv('data.csv')
# print(df.head())
print(df)

20.合并两张CSV数据表格

import pandas as pd

# 读取CSV文件
df1 = pd.read_csv('data.csv')
df2 = pd.read_csv('date.csv')

# 使用pandas的merge函数进行合并,基于VIN列
merged_df = pd.merge(df1, df2, on='date', how='inner')  # how='inner'表示内连接

# 打印合并后的结果
print(merged_df)

# 如果你想将结果保存到新的CSV文件中,可以使用to_csv函数
merged_df.to_csv('merged_cars.csv', index=False)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值