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
# 整体数据转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结构
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的对象就是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 转 字典
通过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 |
元组里面的元素都是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,可以直接转化为字典
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))