dataframe iloc_pd.DataFrame的基本操作

1. 转置

.T方法

import 

f6031f67b5b2b2ffd16afec86b4f8bd4.png

2. 查看DataFrame头部数据, 尾部数据

.head()方法, 查看Series头部(前几个)数据.

.tail()方法, 查看Series尾部(后几个)数据.

import 

b036f27d176fa8a9651217273540bbae.png

3. DataFrame数据索引 [超级重要]

3.0 查看索引

.columns方法, 查看列标签. .index方法, 查看行标签.

import 

06678e7d4812eb0e4634a757e2a49624.png

3.1 标签索引

按标签, 索引列, df[列标签]

import 

0c2ea448425caaac54854a957d615b9b.png
# 按属性,索引列

623f31a4513d3a308bd99458f3ad182d.png

按标签, 索引行, df.loc[行标签]

import 

edbe91ce3f69abdf7ef715345f755676.png

按标签, 索引行和列, df.loc[行标签, 列标签]

import 

f5f0c2904e5091cd8faa2c3d37529837.png

3.2 下标索引

按下标, 索引行, df.iloc[行标签]

位置下标从0开始. 第一个元素下标索引为0

import 

c4365de16d6b6ba44b841ce6ed77ebc6.png

按下标, 索引行和列, df.iloc[行标签, 列标签]

import 

c312408ac7048d696da53c26e5fe2d86.png

3.3 切片索引

按位置下标进行切片索引时, 末端不包含

切片索引都是先索引行

df[:] 切片索引行

import 

a93f7517466e23f591bee74c6ce92bd0.png

df.loc[:] 切片索引行

import 

7de5a71b5dd7fbff6113314ab2108204.png

df.iloc[:] 切片索引行

import 

16bb83295b9f2a70b604d64e4475c85b.png

3.4 多重索引

结合3.1, 3.2, 3.3中的方法进行搭配索引即可

先索引列, 后索引行. 举例

import 

f4337270c73cda6a0e3fa979e87658a1.png

先索引行, 后索引列. 举例

import 

a3706326b758d58fcece2fadc954c10c.png

3.5 布尔型索引

对DataFrame进行判断, 可以生成布尔型的DataFrame

对df整体进行判断, 值为True的保留, 其余返回NaN

import 

cd67f1b97b87a8e9d6e7a4a4ba1c14bb.png

对df的行进行判断

布尔型数组为DataFrame

import 

99af0c7668b9533461e01d37a910cdbf.png

对df的列进行判断

布尔型数组为DataFrame

import 

e55234ef3162a9bfdf8e38fb85bdc9a5.png

布尔型数组为Series

import 

74ba08b5ceb6c49a6d8738f57cc0bdb1.png

根据这种特性, 可以设计满足某条件, 删除某行的程序, 如下

.isnull()方法, 判断是否为空值

# 根据某列, 判断该列是否含空值, 并删除空白值所在的行

904325d78cc7983b7dad57db01aadffb.png

.notnull()方法, 判断是否非空值, 用法同上

3.6 重新索引

import 

72e36bcd3d81f03ef8dc148a60506720.png

4. DataFrame排序

.sort_values()方法, 按值排序..sort_index()方法, 按索引排序.

import 

80471e43bc90c3711ed010bfa3f9fc2e.png
import 

35028b72c4a19a19bd124a88f9a67722.png

5. DataFrame对齐

DataFrame之间的运算会按照行列标签, 自动对齐, 与顺序无关.

import 

63665a24e66cca262c7a91b1e8f67f11.png

6. 添加

索引后添加

import 

e943483aa67f54940e7a77255357b368.png

7 修改

索引后修改

import 

b3cf386ca5153c8f854844ae0b82244b.png

8. 删除

.drop方法

删除行

import 

c7a5976a7edc526f41c389f7d4b948f9.png

删除列

import 

6ba162052137bdf42d2be008a2c0d9d8.png

del 语句

删除列

import 

643308edd0c073e31330c33dc20a609f.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
import numpy as np import pandas as pd from sklearn.cluster import KMeans from sklearn.preprocessing import StandardScaler from scipy.spatial.distance import cdist import matplotlib.pyplot as plt from pandas import DataFrame from sklearn.decomposition import PCA plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签 plt.rcParams['axes.unicode_minus']=False #用来正常显示负号 pd.set_option('display.max_rows', None)#显示全部 pd.set_option('display.max_columns', None)#显示全部 np.set_printoptions(threshold=np.inf) pd.set_option('display.max_columns', 9000) pd.set_option('display.width', 9000) pd.set_option('display.max_colwidth', 9000) df = pd.read_csv(r'附件1.csv',encoding='gbk') X = np.array(df.iloc[:, 1:]) X=X[0:,1:] k=93 kmeans_model = KMeans(n_clusters=k, random_state=123) fit_kmeans = kmeans_model.fit(X) # 模型训练 #查看聚类结果 kmeans_cc = kmeans_model.cluster_centers_ # 聚类中心 print('各类聚类中心为:\n', kmeans_cc) kmeans_labels = kmeans_model.labels_ # 样本的类别标签 print('各样本的类别标签为:\n', kmeans_labels) r1 = pd.Series(kmeans_model.labels_).value_counts() # 统计不同类别样本的数目 print('最终每个类别的数目为:\n', r1) # 输出聚类分群的结果 # cluster_center = pd.DataFrame(kmeans_model.cluster_centers_, # columns=[ str(x) for x in range(1,94)]) # 将聚类中心放在数据框中 # cluster_center.index = pd.DataFrame(kmeans_model.labels_). \ # drop_duplicates().iloc[:, 0] # 将样本类别作为数据框索引 # print(cluster_center)代码解释
06-13
这段代码主要是使用KMeans算法对一个数据集进聚类分析,并输出聚类结果。下面是代码的解释: 1. 导入所需的库 ```python import numpy as np import pandas as pd from sklearn.cluster import KMeans from sklearn.preprocessing import StandardScaler from scipy.spatial.distance import cdist import matplotlib.pyplot as plt from pandas import DataFrame from sklearn.decomposition import PCA ``` 2. 读取数据集 ```python df = pd.read_csv(r'附件1.csv',encoding='gbk') X = np.array(df.iloc[:, 1:]) X=X[0:,1:] ``` 3. 使用KMeans算法进聚类分析 ```python k=93 kmeans_model = KMeans(n_clusters=k, random_state=123) fit_kmeans = kmeans_model.fit(X) ``` 4. 输出聚类结果 ```python kmeans_cc = kmeans_model.cluster_centers_ print('各类聚类中心为:\n', kmeans_cc) kmeans_labels = kmeans_model.labels_ print('各样本的类别标签为:\n', kmeans_labels) r1 = pd.Series(kmeans_model.labels_).value_counts() print('最终每个类别的数目为:\n', r1) ``` 上述代码中,kmeans_cc表示各个类别的聚类中心,kmeans_labels表示每个样本所属的类别,r1表示每个类别的样本数目。 5. 将聚类中心放在数据框中 ```python # cluster_center = pd.DataFrame(kmeans_model.cluster_centers_, # columns=[ str(x) for x in range(1,94)]) # 将聚类中心放在数据框中 # cluster_center.index = pd.DataFrame(kmeans_model.labels_). \ # drop_duplicates().iloc[:, 0] # 将样本类别作为数据框索引 # print(cluster_center) ``` 这段代码是将聚类中心放在数据框中,并以样本类别作为索引。但是,这段代码被注释掉了,因此不会被执
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值