Python中数据元素的查看选取等
基本概念
元素-对象
下标-元素位置-位置索引-整数
标签索引--名称name和value
在内部:判断是否 if a in b
遍历 for a in b
list -列表
基本:int value (index())
mylisteg = ["anna","baby","coff"]
# 由位置索引-整数索引找值
mylisteg[2]
# 由index 找位置 list.index(value)
mylisteg.index("anna")
# 切片-分片 三个参数[start:stop:step] 左闭右开[ )类似于 range(start, stop[, step])
mylisteg[0:2]
#分片- slice -- 列表切片是深拷贝
dict -字典
基本情况: key value items
由索引到值 key -- value
mydicteg = {'Ali': '321', 'Beth': '901', 'Coff': '456'}
mydicteg['Ali']
if "Ali" in mydicteg:
print(mydicteg["Ali"])
else:
print("not exist")
mydicteg.get("Ali","not-exist")
mydicteg.get("Alim","not-exist")
其他:
mydicteg.keys()
mydicteg.values()
mydicteg.items()
Numpy中的ndarray
# 和R语言中矩阵或者向量很相似
import numpy as np
mylist = [8, 0, 0.5, 1, 3]
mynarrayeg = np.array(mylist)
type(mynarrayeg)
## 由位置索引-整数索引找值
mynarrayeg[0]
# 由value 找位置np.argwhere
np.argwhere(mynarrayeg== 8)
Pandas中的DataFrame
Series
由一组数据以及与之相关的标签组成
mylist = [8, 0, 0.5, 1, 3]
indexname = ["a","b","c","d","e"]
myserieseg2 = pd.Series(mylist,indexname)
myserieseg2.index
# 位置索引-标签索引 --切片包含[]左闭右闭
myserieseg2[2])
myserieseg2["c"]
DataFrame索引分为两种,
行:index=[]
列 columnas=[]
一种真实序号索引,0代表第一行,1代表第二行,依此类推;
另一种是标签索引,行序号或列序号可以用标签,比如说'a','b'等等
层次化索引 -- 5.1
index axis level 标题 header
axis = 0 0表示纵轴,方向从上到下--数组的变化是纵向的,体现出行的增加或减少
axis = 1 1表示横轴,方向从左到右--数组的变化是横向的,而体现出来的是列的增加或者减少
01.单个标量
df.at[label_i,label_j] == df.iat[i,j]
02.选择单行或者多行
df.loc[val] == df.iloc[where]
03.选择单列或者多列
df.loc[:, val] == df.iloc[:, where] df[val]
04.选择行和列中的一部分
df.loc[val1, val2] == df.iloc[where, where]
细节:使用loc和iloc严格处理基于标签和基于整数的索引
df[val] 选取单列或者列序列
df.loc[val] 根据标签选择单行或者多行
df.loc[:, val] 根据标签选择单列或多列
df.loc[val1, val2] 选择行和列中的一部分
df.iloc[where] 根据整数选择单行或者多行
df.iloc[:, where] 根据整数选择单列或者多列
df.iloc[where, where] 行和列中的一部分
pandas.concat(,axis=0) 行
pandas.concat(,axis=1) 列 axis='columns'
outdata.shape[0] #行数 df.index.size()
outdata.shape[1] #列数 df.columns.size()
reindex 重建索引
reindex(columns=)-重建列索引