pandas之DataFrame的创建&基本操作&索引

import pandas as pd
import numpy as np
print("*"*25+"dataframe创建"+"*"*25)
*************************dataframe创建*************************
pd.DataFrame(np.arange(12).reshape(3,4)) #index 横向索引,0轴,axis=0;columns 纵向索引,1轴,asix=1
0123
00123
14567
2891011
pd.DataFrame(np.arange(12).reshape(3,4),index=list("abc"),columns=list("DEFG"))
DEFG
a0123
b4567
c891011
d1={"name":["n1","n2"],"age":[20,30],"tel":[111,222]}
t1=pd.DataFrame(d1) #字典转换为dataframe
type(t1)
pandas.core.frame.DataFrame
t1
nameagetel
0n120111
1n230222
d2=[{"name":"n1","age":20,"tel":111},{"name":"n2","tel":222}]
t2=pd.DataFrame(d2) #列表相同转换为DataFrame,缺失的值为NaN
type(t2)
pandas.core.frame.DataFrame
t2
nameagetel
0n120.0111
1n2NaN222
print("*"*25+"dataframe操作"+"*"*25)
*************************dataframe操作*************************
t2.index #t2的行索引
RangeIndex(start=0, stop=2, step=1)
t2.columns #t2的列索引
Index(['name', 'age', 'tel'], dtype='object')
t2.values #t2的值
array([['n1', 20.0, 111],
       ['n2', nan, 222]], dtype=object)
t2.shape #t2的结构
(2, 3)
t2.dtypes #values的数据类型
name     object
age     float64
tel       int64
dtype: object
t2.ndim #t2的维度
2
t2.head(1) #显示前几行 默认前5行
nameagetel
0n120.0111
t2.tail(1) #显示后几行
nameagetel
1n2NaN222
t2.info() #t2相关信息概览
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 2 entries, 0 to 1
Data columns (total 3 columns):
 #   Column  Non-Null Count  Dtype  
---  ------  --------------  -----  
 0   name    2 non-null      object 
 1   age     1 non-null      float64
 2   tel     2 non-null      int64  
dtypes: float64(1), int64(1), object(1)
memory usage: 176.0+ bytes
t2.describe() #快速进行数字相关的统计计算
agetel
count1.02.000000
mean20.0166.500000
stdNaN78.488853
min20.0111.000000
25%20.0138.750000
50%20.0166.500000
75%20.0194.250000
max20.0222.000000
print("*"*25+"dataframe使用"+"*"*25)
*************************dataframe使用*************************
df = pd.read_csv("./dogNames2.csv") #读取数据
df.sort_values(by="Count_AnimalName",ascending=False) #dataframe排序方法,by=默认升序
# print(df.head(5))
Row_LabelsCount_AnimalName
1156BELLA1195
9140MAX1153
2660CHARLIE856
3251COCO852
12368ROCKY823
.........
6884J-LO1
6888JOANN1
6890JOAO1
6891JOAQUIN1
16219397431

16220 rows × 2 columns

print("*"*25+"dataframe索引"+"*"*25)
*************************dataframe索引*************************
df_sorted=df.sort_values(by="Count_AnimalName",ascending=False)
df_sorted[:5] #取前20行,默认按行操作
Row_LabelsCount_AnimalName
1156BELLA1195
9140MAX1153
2660CHARLIE856
3251COCO852
12368ROCKY823
df_sorted[:5]["Row_Labels"] #取前20行单独只取某列
1156       BELLA
9140         MAX
2660     CHARLIE
3251        COCO
12368      ROCKY
Name: Row_Labels, dtype: object
df_sorted[:1]
Row_LabelsCount_AnimalName
1156BELLA1195
t3=pd.DataFrame(np.arange(12).reshape(3,4),index=list("abc"),columns=list("WXYZ"))
t3
WXYZ
a0123
b4567
c891011
t3.loc["a","Z"]#loc通过标签索引行数据(范围是闭合的),iloc通过位置获取行数据
3
type(t3.loc["a","Z"])
numpy.int64
t3.loc["a"] #取a整行
W    0
X    1
Y    2
Z    3
Name: a, dtype: int64
t3.loc[:,"Z"]
a     3
b     7
c    11
Name: Z, dtype: int64
t3.loc[["a","c"]] #取多行
WXYZ
a0123
c891011
t3.loc[:,["X","Z"]] #取多列
XZ
a13
b57
c911
t3.iloc[1] #iloc按位置获取
W    4
X    5
Y    6
Z    7
Name: b, dtype: int64
t3.iloc[:,2] #iloc获取列
a     2
b     6
c    10
Name: Y, dtype: int64
t3.iloc[[0,2],[2,1]] #获取 
YX
a21
c109
t3.iloc[1:,:2] #获取第1行第1列到最后行第2列 (0为第一行)
WX
b45
c89
t3.iloc[1:,:2]=11 #赋值
t3
WXYZ
a0123
b111167
c11111011

字符串方法:
在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值