python dataframe与list,series,array,字典类型的相互转换

文章目录

  • 创建数据
  • dataframe ---- list
  • Dataframe ---- Series
  • dataframe ---- array
  • dataframe ---- 字典dictionary
  • 元组tuple ---- 字典
  • list ---- 字典

创建数据

import numpy as np
import pandas as pd
# 创建一个dataframe数据
df = pd.DataFrame({
    'name':[1,2,3],
    'age':[19,21,23]
})
type(df)
df
name age
0 1 19
1 2 21
2 3 23

dataframe ---- list

dataframe 转 list

# 整体数据转list
df_to_list_all = df.values.tolist()
df_to_list_all
[[1, 19], [2, 21], [3, 23]]
# 某行数据转list
df_to_list_row = df.loc[0].values.tolist()
df_to_list_row
[1, 19]
# 某列数据转list
df_to_list_column_name = df['name'].values.tolist()
df_to_list_column_name
df_to_list_column_age = df['age'].values.tolist()
df_to_list_column_age
[19, 21, 23]

list 转 dataframe

df1 = pd.DataFrame({'xname':df_to_list_column_name,'xage':df_to_list_column_age})
df1
xname xage
0 1 19
1 2 21
2 3 23

Dataframe ---- Series

dataframe 转 series

# dataframe每一列/行的数据就是series结构
series_column = df['age']
type(series_column)
series_row = df.loc[0]
series_row
type(series_row)
pandas.core.series.Series

series 转 dataframe

df2 = pd.DataFrame({'a':series_column,'b':series_column+1})
df2
a b
0 19 20
1 21 22
2 23 24

dataframe ---- array

dataframe转array

# dataframe的对象就是numpy的数组
array_all  = df.values
array_all
array([[ 1, 19],
       [ 2, 21],
       [ 3, 23]], dtype=int64)

array 转 dataframe

# 新建一个数组array
array1 = np.arange(0,10,3)
array1
df2 = pd.DataFrame({'a':array1})
df2
a
0 0
1 3
2 6
3 9

dataframe ---- 字典dictionary

dataframe 转 字典
通过to_dict()来转换

dic = df.to_dict()
dic['name'] # 通过key来取值
{0: 1, 1: 2, 2: 3}

字典转dataframe
通过字典里面的key来访问对应的值,从而初始化dataframe

df3 = pd.DataFrame({'a':dic['name'],'b':dic['age']})
df3
a b
0 1 19
1 2 21
2 3 23

元组tuple ---- 字典

元组里面的元素都是2个

vegetables = [('celery', 1.58), ('brocoli', 1.29), ('lettuce', 2.19)]
# 创建包含3组key-value对的字典
dict3 = dict(vegetables)
print(dict3) # {'celery': 1.58, 'brocoli': 1.29, 'lettuce': 2.19}

list ---- 字典

对于二维list,可以直接转化为字典

cars = [['BMW', 8.5], ['BENS', 8.3], ['AUDI', 7.9]]
# 创建包含3组key-value对的字典
dict4 = dict(cars)
print(dict4) # {'BMW': 8.5, 'BENS': 8.3, 'AUDI': 7.9} 

对于一维list,可以将两个一维list通过zip拼在一起

dict_zip = dict(zip(list1,list2)) 

你可能感兴趣的:(Python基础和操作,python)