python 数据类型list、dict、numpy array、series、dataframe之间的转换

引言

dataframepandas的数据类型;

ndarraynumpy的数据类型;

listdictpython的数据类型;

seriespandas的一种数据类型,Series是一个定长的,有序的字典,因为它把索引和值映射起来了。

通过以下例子,可以更加清楚它们的数据表示。

1. list to others

import numpy as np
import pandas as pd
from pandas import Series, DataFrame
# list
data = [[2000, 'Ohino', 1.5],
        [2001, 'Ohino', 1.7],
        [2002, 'Ohino', 3.6],
        [2001, 'Nevada', 2.4],
        [2002, 'Nevada', 2.9]]  # type(data) 为 list

# list to series
ser = Series(data, index = ['one', 'two', 'three', 'four', 'five'])

# list to dataframe
df = DataFrame(data, index = ['one', 'two', 'three', 'four', 'five'], columns = ['year', 'state', 'pop'])

# list to array
ndarray = np.array(data)

运行结果:

# Series
one       [2000, Ohino, 1.5]
two       [2001, Ohino, 1.7]
three     [2002, Ohino, 3.6]
four     [2001, Nevada, 2.4]
five     [2002, Nevada, 2.9]
dtype: object
# dataframe
       year   state  pop
one    2000   Ohino  1.5
two    2001   Ohino  1.7
three  2002   Ohino  3.6
four   2001  Nevada  2.4
five   2002  Nevada  2.9
# ndarray
[['2000' 'Ohino' '1.5']
 ['2001' 'Ohino' '1.7']
 ['2002' 'Ohino' '3.6']
 ['2001' 'Nevada' '2.4']
 ['2002' 'Nevada' '2.9']]

2. ndarray to others

# array to dataframe
pd = DataFrame(ndarray, index = ['one', 'two', 'three', 'four', 
'five'], 
columns = ['year', 'state', 'pop'])
# ndarray to list
mylist = ndarray.tolist()

3. dict to others

import numpy as np
import pandas as pd
from pandas import Series, DataFrame

# dict
data = { 'name': ['Li', 'Zhang', 'Wang'],
         'year': [2000, 2001, 2002]}  # type(data) 为 dict
# dict to series
# 若不指定 index,data 的 key 充当 Series 的 index
ser = Series(data)
print('ser\n', ser)

# dict to dataframe
# 若不指定 columns,data 的 key 充当 DataFrame 的 columns
df = DataFrame(data)
print('df\n', df)

4. Series to others

如果把DataFrame取一列就是Series格式了。

# series to np array
# 需要pandas version 0.24以上
arr = ser.to_numpy()
# 或者
arr = np.array(ser)
# Series转换成dict
dt = ser.to_dict()

5. DataFrame to others

# dataframe
data = DataFrame(np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]), columns=['a', 'b', 'c'])
print(data)

# dataframe to array
arr = data.values
print('arr\n', arr)
print(type(arr))

# dataframe to dict 
dict = data.to_dict()
print(dict)

DataFrame.to_dict(self, orient='dict', into=<class 'dict'>) 还可以转换成 list,series等:

 orient : str {dict,list, ‘series’, ‘split’, ‘records’, ‘index’}
Determines the type of the values of the dictionary.dict(default) : dict like {column -> {index -> value}}list: dict like {column -> [values]}
‘series’ : dict like {column -> Series(values)}
‘split’ : dict like {‘index’ -> [index], ‘columns’ -> [columns], ‘data’ -> [values]}
‘records’ : list like [{column -> value},, {column -> value}]
‘index’ : dict like {index -> {column -> value}}
Abbreviations are allowed. s indicates series and sp indicates split.

最近开通了个公众号,主要分享python原理与应用,推荐系统,风控等算法相关的内容,感兴趣的伙伴可以关注下。
在这里插入图片描述
公众号相关的学习资料会上传到QQ群596506387,欢迎关注。


参考:

  1. Yam_ List, Dict, Array, Series, DataFrame 相互转换;
  2. dataframe to_dict() ;
  3. pandas dataframe;
  4. pandas Series;
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

rosefunR

你的赞赏是我创作的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值