三天做完pandas数据分析50题第一天

第1题 将python的list转换为Series

	将列表scores = [90, 85, 95, 97, 89, 100]转换为Series?

解析:使用pd.Series()方法,将列表直接作为参数传递进去。

import pandas as pd
scores = [90, 85, 95, 97, 89, 100]
series = pd.Series(scores)
print(series)

结果如下:
在这里插入图片描述

第2题 将字典转换为Series

	如何将存有学生成绩的字典scores = {"小明":80, "小张":85,"小李":70}转换为Series?

解析:将字典直接传入pd.Series()中。

import pandas as pd
scores = {"小明":80, "小张":85,"小李":70}
series = pd.Series(scores)
print(series)

结果如下:
在这里插入图片描述
需要注意的是,当传入列表的时候,索引是数字索引,当传入字典的时候,索引是字典的key。

第3题 将Series转换成python的list

解析:可以使用Series的tolist()方法实现。

import pandas as pd
scores = {"小明":80, "小张":85,"小李":70}
series = pd.Series(scores)    

score_list = series.tolist()    # 将Series转换成列表
print(score_list)

在这里插入图片描述

第4题 使用numpy创建series。

	如何使用numpy创建如下的Series?

在这里插入图片描述

解析:代码如下:

import pandas as pd
import numpy as np

s = pd.Series(
    np.arange(11,20),
    index=np.arange(1,10),
    dtype='float'    
)

第5题 如何为Series添加新的元素?

	已知存在一个学生身高的series如下:
	heights = {'xiaoming': 180, 'xiaozhang': 175, 'xiaowang': 190, 'xiaowu': 183}
	s = pd.Series(heights)

如何为这个Series添加两个新的元素,“xiaoliu”身高178,“xiaozhao”身高176?
解析:可以先构造一个新的Series,然后使用Series的_append方法(最新版的pandas将append方法变为了_append方法)添加新的Series。注意,使用_append方法并不会改变原来的Series,需要使用变量接收。

import pandas as pd

heights = {'xiaoming': 180, 'xiaozhang': 175, 'xiaowang': 190, 'xiaowu': 183}
s = pd.Series(heights)

s1 = pd.Series({'xiaoliu': 178, 'xiaozhao': 176})
s = s._append(s1)

s的结果如下:
在这里插入图片描述

第6题 使用字典创建DataFrame

解析:将字典直接传入pd.DataFrame()方法中即可使用字典创建DataFrame。

import pandas as pd

df = pd.DataFrame(
    {
        'name': ['xiaoming', 'xiaozhang', 'xiaowang'],
        'height':[180, 175, 190],
        'score':[94, 78, 80]
    }
)

DataFrame的效果如下:
在这里插入图片描述
那如果将key为score的值列表改为[94, 78, 80, 99] ,即多了一个元素会怎么样呢?会报如下错误:ValueError: All arrays must be of the same length,即所有的arrays都必须有相同的长度。

第7题 给DataFrame设置索引列

	接上题,如何将DataFrame的name列设置为索引列?

解析:使用DataFrame的set_index()方法,如需直接修改DataFrame,需要添加参数inplace=True。

import pandas as pd

df = pd.DataFrame(
    {
        'name': ['xiaoming', 'xiaozhang', 'xiaowang'],
        'height':[180, 175, 190],
        'score':[94, 78, 80]
    }
)
df.set_index('name', inplace=True)

效果如下:
在这里插入图片描述

第8题 生成一个月的所有天

解析:使用pd.date_range()方法:

# 第一种方法
import pandas as pd
date_range = pd.date_range(start='20240101', end='20240131')
# 第二种方法
date_range = pd.date_range(start='20240101', periods=31)

第9题 生成一年中所有的周一

解析:还是使用pandas的date_range()方法,需要添加参数freq=‘W-MON’:

import pandas as pd
date_range = pd.date_range(start='2023-01-01', end='2023-12-31', freq='W-MON')

第10题 生成一天中所有的小时

import pandas as pd
date_range = pd.date_range('2024-04-11', periods=24, freq='H')

第11题 创建一个DataFrame,一列是一个月中每天的日期,另一列是对应日期在当年的第几天?

解析:使用pd.DataFrame()和pd.date_range()方法来创建。

import pandas as pd

date_range = pd.date_range('2024-03-01', periods=31, freq='D')
df = pd.DataFrame(date_range, columns=['day'])
df['dayofyear'] = df['day'].dt.dayofyear

DataFrame的效果如下(部分截图):
在这里插入图片描述

第12题 删除列

import pandas as pd

df = pd.DataFrame(
    {
        'name': ['xiaoming', 'xiaozhang', 'xiaowang'],
        'height':[180, 175, 190],
        'score':[94, 78, 80]
    }
)
df.drop(columns=['height','score'],inplace=True)
  • 55
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值