import pandas as pd
In [2]:
#创建DataFrame # pd.Series(data=[12,2,3]) pd.Series(data=[12,2,3],index=[1,3,5])
Out[2]:
1 12 3 2 5 3 dtype: int64
In [3]:
inf={"11":"gg","33":"rr"}
data=pd.Series(inf)
# data.values
# data[1]
# data.index
data+"mm"
Out[3]:
11 ggmm 33 rrmm dtype: object
In [11]:
#DataFrame
# df=pd.DataFrame([[1,3,6],[7,9,3]])
df=pd.DataFrame(data=([[1,3,6],[7,9,3]]),index=("xiao","mgf"),columns=("语文","数学","yield"))
df
Out[11]:
| 语文 | 数学 | yield | |
|---|---|---|---|
| xiao | 1 | 3 | 6 |
| mgf | 7 | 9 | 3 |
In [12]:
# df.数学 df["数学"] df.index df.columns df.values
Out[12]:
array([[1, 3, 6],
[7, 9, 3]], dtype=int64)
In [13]:
#添加 删除 df["历史"]=["33","44"] df
Out[13]:
| 语文 | 数学 | yield | 历史 | |
|---|---|---|---|---|
| xiao | 1 | 3 | 6 | 33 |
| mgf | 7 | 9 | 3 | 44 |
In [14]:
del df["yield"] df
Out[14]:
| 语文 | 数学 | 历史 | |
|---|---|---|---|
| xiao | 1 | 3 | 33 |
| mgf | 7 | 9 | 44 |
In [15]:
#索引只能整体设置,不能单独设置 df.index=["小红","小马"] df
Out[15]:
| 语文 | 数学 | 历史 | |
|---|---|---|---|
| 小红 | 1 | 3 | 33 |
| 小马 | 7 | 9 | 44 |
In [16]:
#int64index pd.DataFrame(data=[2,3,6],index=[6,7,8]).index
Out[16]:
Int64Index([6, 7, 8], dtype='int64')
In [17]:
#multiIndex 层次化索引
dd=pd.DataFrame({"year":[2021,2022,2023],"moth":[12,11,3],"date":[5,7,9]}
)
dd
Out[17]:
| date | moth | year | |
|---|---|---|---|
| 0 | 5 | 12 | 2021 |
| 1 | 7 | 11 | 2022 |
| 2 | 9 | 3 | 2023 |
In [18]:
dd.set_index(["year","date"])
Out[18]:
| moth | ||
|---|---|---|
| year | date | |
| 2021 | 5 | 12 |
| 2022 | 7 | 11 |
| 2023 | 9 | 3 |
In [19]:
##重置索引, ser_obj=pd.Series([1,2,3,4,5],index=['a','b','c','d','e']) ser_obj
Out[19]:
a 1 b 2 c 3 d 4 e 5 dtype: int64
In [20]:
ser_obj.reindex(['a','b','c','r'])
Out[20]:
a 1.0 b 2.0 c 3.0 r NaN dtype: float64
In [21]:
ser_obj.reindex(['a','b','c','r'],fill_value=10)
Out[21]:
a 1 b 2 c 3 r 10 dtype: int64
In [35]:
ser_re=pd.Series([2,3,5,6],index=[0,2,4,6]) ser_re
Out[35]:
0 2 2 3 4 5 6 6 dtype: int64
In [23]:
# ser_re.reindex(range(4),method="ffill")#前置填充 ser_re.reindex(range(4),method="bfill")#后置填充
Out[23]:
0 2 1 3 2 3 3 5 dtype: int64
In [47]:
#索引的操作 ser_obj=pd.Series([2,3,4,6],index=['a','b','c','d']) # ser_obj[1] # ser_obj['c'] #切片 # ser_obj[2:4] ser_obj[[2,3]]
Out[47]:
c 4 d 6 dtype: int64
In [48]:
# ser_obj['b':'d'] ser_obj[['b','d']]
Out[48]:
b 3 d 6 dtype: int64
In [49]:
#bool索引 ser_obj>2
Out[49]:
a False b True c True d True dtype: bool
In [50]:
ser_obj[ser_obj>2]
Out[50]:
b 3 c 4 d 6 dtype: int64
In [52]:
#DataFrame索引方式 import numpy as np
In [53]:
data_ob=pd.DataFrame(np.arange(12).reshape((3,4)),columns=['a','b','c','d']) data_ob
Out[53]:
| a | b | c | d | |
|---|---|---|---|---|
| 0 | 0 | 1 | 2 | 3 |
| 1 | 4 | 5 | 6 | 7 |
| 2 | 8 | 9 | 10 | 11 |
In [61]:
# data_ob['b'] data_ob[['a','b']] #只针对列,行不行,如data_ob[2]
Out[61]:
| a | b | |
|---|---|---|
| 0 | 0 | 1 |
| 1 | 4 | 5 |
| 2 | 8 | 9 |
In [57]:
data_ob[:2]
Out[57]:
| a | b | c | d | |
|---|---|---|---|---|
| 0 | 0 | 1 | 2 | 3 |
| 1 | 4 | 5 | 6 | 7 |
In [59]:
data_ob[:2][['a','b']]
Out[59]:
| a | b | |
|---|---|---|
| 0 | 0 | 1 |
| 1 | 4 | 5 |
In [67]:
#使用loc iloc完成先行后列 # data_ob.loc[:,['a','c']] data_ob.loc[:,'b':'d']
Out[67]:
| b | c | d | |
|---|---|---|---|
| 0 | 1 | 2 | 3 |
| 1 | 5 | 6 | 7 |
| 2 | 9 | 10 | 11 |
In [68]:
data_ob.iloc[:1,:2]
Out[68]:
| a | b | |
|---|---|---|
| 0 | 0 | 1 |
In [ ]:

这篇博客介绍了Pandas库中Series和DataFrame的基本操作,包括创建、修改和删除数据。展示了如何设置和重置索引,以及如何进行布尔索引和层次化索引。此外,还涵盖了数据切片、填充缺失值以及行和列的选取方法。
4915

被折叠的 条评论
为什么被折叠?



