Series
import pandas as pd
# 1)直接读取列表数据
s1 = pd.Series([1, \'a\', 3.3, 66])
s1.index # 查看索引
s1.values # 获取值
# 2)指定索引读取
s2 = pd.Series([1, \'a\', 5.2, 44], index=[\'a\', \'b\', \'c\', \'d\'])
# 3)Python字典创建Series,key为索引 即index行索引,value为值
data_dict = {\'area\': \'北京\', \'teaw\': 222, \'form\': \'lama\'}
s3 = pd.Series(data_dict)
s2.a # 根据索引查询数据 查询索引为a 获取索引为a的值
s2[[\'b\', \'a\']] # 获取多值,注意为2层中括号获取多个数据
DataFrame
# 1)根据字典序列创建dataframe:
data = {
\'state\': [\'oli\', \'awfe\', \'wefa\'],
\'year\': [222, 314, 4314],
\'pop\': [1.2, 3.2, 2.2]
}
df = pd.DataFrame(data)
column = df[\'year\'] # 查询一列
multi_column = df[[\'year\', \'pop\']] # 查询多列
df.loc[1] # 查询一行 使用df.loc[行索引]查询一条数据
df.loc[0:3] # 查询多行 0到3为一个区间
df[\'列\'].unique() # 去重
# 2)复杂嵌套数据类型转换为dateframe输出为excel或csv文件
# 范例数据
data = {
\'status_name\': \'在用\',
\'devsite_alias\': \'\',
\'data\': [{
\'pollutant_id\': 199054,
\'values\': [{
\'qc_datetime\': \'2022-02-28 11:00:00\',
\'qc_value\': 0.02533
}]
}]
}
# 调用json_normalize方法
df = json_normalize(data,
record_path=[\'data\', \'values\', ], # 包含数据层数 意思为data下面的values
# 指定其他未显示的字段 指定一层数据 和 多层嵌套数据
meta=[
\'status_name\',
\'devsite_alias\',
[\'data\', \'pollutant_id\'], ] # 意思为data下面的pollutant_id 一个列表为一个数据 其他嵌套数据指定在后面的列表汇总即可
)
# meta中指定嵌套数据会自动将列名修改为data.pollutant_id 修改列名为原列名pollutant_id,inplace=True不换位置
df.rename(columns={\'data.pollutant_id\':\'pollutant_id\'} ,inplace=True) # 原地 修改列名操作
# 3)DateFrame转换字典
DataFrame.to_dict(self, orient=\'dict\', into=)
# 3.1)orient = \'dict\' # 函数默认,转化后的字典形式
{
column(列名) :{index(行名):value(值), index(行):value(值)},
column(列名) :{index(行名):value(值), index(行):value(值)},
}
# 3.2)orient = \'list\'# 转化后的字典形式
{
column(列名): Series(values)[1, 2, 3],
column(列):Series(values)[1, 2, 3],
}
# 3.3)orient = \'split\' 转换后的字典形式
{
\'index\' : [index],\'columns\':[columns],\'data\': [values]}
}
# 3.4)orient = \'records\' 转换后的list形式 注意这里返回值为列表
data = [
{
column(列名):value(值),
column(列名):value(值) # 所有列 第一行全部映射
},
{
column(列名):value(值),
column(列名):value(值) # 所有列 第二行全部映射
}
]
来源:https://www.cnblogs.com/wangshuang57/p/df_sr.html
本站部分图文来源于网络,如有侵权请联系删除。