Python教程

Pandas Series+DateFrame数据类型基础操作 与 Python中复杂数据类型转换关系

本文主要是介绍Pandas Series+DateFrame数据类型基础操作 与 Python中复杂数据类型转换关系,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

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(值)	# 所有列 第二行全部映射
	}
]



这篇关于Pandas Series+DateFrame数据类型基础操作 与 Python中复杂数据类型转换关系的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!