百木园-与人分享,
就是让自己快乐。

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




来源:https://www.cnblogs.com/wangshuang57/p/df_sr.html
本站部分图文来源于网络,如有侵权请联系删除。

未经允许不得转载:百木园 » Pandas Series+DateFrame数据类型基础操作 与 Python中复杂数据类型转换关系

相关推荐

  • 暂无文章