Pandas 数据分析基础

import pandas as pd
pandas序列(Series)
data = pd.Series([0.1, 0.2, 0.3, 1.0]) #自动维护标号索引,支持下标切片
data = pd.Series([1,2,3,4], index=['a', 'b', 'c', 'd']) #指定索引
data.iloc[1] #按位置索引
#迭代器
for i in data.values:
print(i)
# 使用词典初始化序列
sdata = {'a':1, 'b':2, 'c':3}
keys = ['b', 'c', 'd']
obj = pd.Series(sdata, index = keys) # 'd'为Nan, 'a'被删去


pandas二维数据表(DataFrame)

多序列合并生成dataframe

dict1 = {'a':1, 'b': 2, 'c':3}
sdata_1 = pd.Series(dict1)
dict2 = {'a':2020, 'b':2021, 'c':2022}
sdata_2 = pd.Series(dict2)
df = pd.DataFrame({'c1': sdata_1, 'c2': sdata_2})
# 非对齐情况:用NaN填充


用二维Numpy数组生成:

pd.DataFrame(np.random.rand(3,2),
columns=['foo', 'bar'], index=['a', 'b', 'c'])

其他可以输入给DataFrame构造器的数据:
二维ndarray, 由数组、列表或元组组成的字典(每个序列变成DataFrame的一列, 长度必须相同),由Series组成的字典等

索引

state.index # 行索引 Index ['a', 'b', 'c']
state.columns # 列索引 Index ['c1', 'c2']


Pandas Index Object 与 表间关联计算
集合运算

indA = pd.Index([1,2,3,4,5])
indB = pd.Index([2,4,6,8])
indA & ind B
# Ind64Index([2,4])
ind A | ind B
# Ind64Index([1,2,3,4,5,6,8])
indA ^ indB
# Ind64Index([1,3,5,8])


索引

df = pd.DataFrame({'c1': sdata_1, 'c2': sdata_2})
df['c1'] #按列索引
df.c1 #也可使用字段名作为属性
df['c3'] = df['c1'] + df['c2'] # 创造新列并赋值
# 筛选
df.loc[ df.c1 > 0, ['c1', 'c2']]
# 赋值
df.iloc[0,1] = 3

    所属分类:Python     发表于2023-03-17