dataframe和series的创建
import pandas as pd
import numpy as np
# 可以使用 pd.DataFrame来创建DataFrame结构
# 1、将大字典转化为df
df = pd.DataFrame(
data={
'name': ['zs', 'ls', 'ww'],
'age': [16, 17, 16],
'group': [1, 2, 1]
},
index=['stu0', 'stu1', 'stu2'] # 行索引
)
print('df:\n', df)
print('df:\n', type(df)) # <class 'pandas.core.frame.DataFrame'>
# 2、可以将列表嵌套转化为df
df = pd.DataFrame(
data=[['zs', 16, 1],
['ls', 17, 2],
['ww', 16, 1]],
index=['stu0', 'stu1', 'stu2'], # 行索引
columns=['name', 'age', 'group'] # 列索引
)
print('df:\n', df)
print('df:\n', type(df))
# 3、也可以将二维的ndarray转化为df
# 可以使用pd.Series来创建一个Series结构
# 1、可以将简单列表转化为Series
se = pd.Series(data=['zs', 'ls', 'ww'],
index=['stu0', 'stu1', 'stu2'] # 行索引
)
print('se:\n', se)
print('se:\n', type(se)) # <class 'pandas.core.series.Series'>
# 2、可以将一维ndarray转化为Series
se = pd.Series(data=np.array(['zs', 'ls', 'ww']),
index=['stu0', 'stu1', 'stu2'] # 行索引
)
print('se:\n', se)
print('se:\n', type(se)) # # <class 'pandas.core.series.Series'>
# 3、可以将字典转化为Series
se = pd.Series(
data={'zs': 95, 'ls': 89, 'ww': 91},
index=['zs', 'ls', 'ww', 'zl']
)
print('se:\n', se)
print('se:\n', type(se))
# 可以通过获取DataFrame中单列数据,来得到Series结构
# 4、获取dataframe中一列数据
se = df['name']
print('se:\n', se)
print('se:\n', type(se))
运行结果
dataframe有行索引和列索引
series只有行索引,没有列索引
dataframe和series的属性
import pandas as pd
# 创建dataframe
df = pd.DataFrame(data=[['zs', 17, 187.5, 1],
['ls', 18, 173.5, 1],
['ww', 19, 175.0, 2],
['zl', 18, 177, 2]],
index=['stu0', 'stu1', 'stu2', 'stu3'],
columns=['name', 'age', 'hight', 'group']
)
print('df:\n', df)
print('df的维度:', df.ndim)
print('df的形状:', df.shape)
print('df的元素个数:', df.size) # 元素个数,不算行、列索引,只算数据
print('df的元素的数据类型:\n', df.dtypes) # 没有dtype,只有dtypes,返回的各列的数据类型
# print('df的元素的数据类型:\n', df.dtype) # 错误的,没有dtype,只有dtypes,返回的各列的数据类型
# print('df的元素的占位大小:', df.itemsize) # 错误的,没有itemsize,
print('df的行索引:\n', df.index)
print('df的列索引:\n', df.columns)
# 可以通过df.values获取df中保存的ndarray
print('df的数据:\n', df.values)
print('df的数据的数据类型:\n', type(df.values))
# 获取一列数据 得到Series
se = df['age']
print('se:\n', se)
print('se:\n', type(se))
print('se的维度:', se.ndim)
print('se的形状:', se.shape)
print('se的元素个数:', se.size)
print('se 元素的数据类型:\n', se.dtype)
print('se 元素的数据类型:\n', se.dtypes)
# print('se 元素的占位大小:\n', se.itemsize) # 该版本没有该属性
print('se 的行索引:\n', se.index) # 只有行索引
print('se 的数据:\n', se.values) # 一维数组
# 修改元素类型---astype
结果