Skip to content

Python:Pandas快速入门

About 694 wordsAbout 2 min

pythonpandasdfSeries

2025-02-12

80%原则。

一、Series、

2.Pandas Series和DataFrame是什么?【Pandas入门教程2】

什么是Series?就是带有标签(index)的一位数组。

s = pd.Series([1,2,3,4,5], index=['a', 'b', 'c', 'd', 'e'])

a    1
b    2
c    3
d    4
e    5
dtype: int64

2_Series.ipynb

二、DataFrame

什么是DataFrame?由各种数据类型的列组成的。

这里面的'one', 'two', 'country' 就是数据结构中的列, 没有指定索引,默认从0开始递增。

dit = {
    'one': [1,2,3,4], 
    'two': [7,6,5,4], 
    'country': ['China', 'jpan', ' canan', np.nan]
}
df = pd.DataFrame(dit)
df
	one	two	country
0	1	7	China
1	2	6	jpan
2	3	5	canan
3	4	4	NaN

2_DataFrame

2.1、DataFrame的api

  • 使用nbviewer或GitHub链接查看整个Notebook。

  • 使用Jupyter Book生成交互式文档,或者通过nbconvert将Notebook转换为HTML并嵌入。

2.1.1、df.asfreq('MS')

asfreq是一个在pd时间序列数据分析中常用的方法,这个方法用于改变时间序列的频率,可以帮我将一个时间序列从一个频率转化为另外一个频率。

import pandas as pd

# 创建一个日期范围
date_range = pd.date_range('2025-01-01', periods=5, freq='2D')
df = pd.DataFrame({'value': [1, 2, 3, 4, 5]}, index=date_range)
df
# 将频率转换为每日
df_resampled = df.asfreq('D', method='ffill')  # 向前填充 bfill
print(df_resampled)

2.2、DataFrame操作文件

【pandas】 之 DataFrame 保存为文件 (df.to_csv、df.to_json、df.to_html、df.to_excel)

  • pd.to_csv()
df.to_csv("resource/" + file_name + ".csv")
  • pd.read_csv()
  • pd.to_json()
  • pd.read_json()
  • pd.to_excel()
  • pd.read_excel()

二、索引、过滤(Indexing、Filtering)

视频教程:3.DataFrame Indexing, Filtering【Pandas入门教程3】

Jupyter Notebook 代码:3_indexing_filtering.ipynb

三、排序、更新行列(Sorting、 Updating)

视频教程:DataFrame的排序和数据更新 Sorting, Updating Records【Pandas入门教程4】

四、合并和分组(Concatenation、Grouping)

视频教程:聚合, 分组, 数据清理 Aggregating, Grouping, Data Cleaning【Pandas入门教程5】

五、数据清理(Data Cleaning)

六、数据可视化(Ploting)

七、问题总结

7.1 No frequency information was provided, so inferred frequency MS will be used.

Pandas ValueWarning: No frequency information was provided, so inferred frequency MS will be used错误

大概意思就是使用时间作为index,但是没有制定时间的跨度,及时freq这个属性,pd默认生成freq='MS'的索引。

涉及到的函数:

pd.date_range('20240101', '20241201', freq="MS")
- M:月份末尾
- MS:月份开头
- A:年末
- AS:年初
- W:周末
- D:天
np.random.randm(len())
pd.Series(values, index=idx)

7.2、获取某个时间段内的数据

pandas提取某段时间范围数据的五种方法,比如提取9月份数据

import pandas as pd 
df = pd.read_csv('./TianQi.csv')
 
#获取九月份数据的几种方法
#使用行索引切片,['2019/9/1':'2019/9/30'],缺点是要求日期必须是连续的。
df.set_index('日期',inplace=True)
print(df['2019/9/1':'2019/9/30'].head())    # 或者print(df.loc['2019/9/1':'2019/9/30',:])

Changelog

6/3/25, 1:49 AM
View All Changelog
  • d3a6d-Merge branch 'dev1'on

求求了,快滚去学习!!!

求求了求求了,快去学习吧!

【题单】贪心算法

不知道方向的时候,可以多看看书,书会给你指明下一步该干什么,加油!