Python将DataFrame格式转为Python中其他数据结构类型(总结)

这里写目录标题

  • DataFrame 转字典(dict)
    • Case 1:将某一列作为键,其余作为值
    • Case 2:键为行索引,值为所有列构成的元组
    • Case 3:列名作为键,每列的所有元素作为其对应的值
    • Case 4:将每一行数据创建为一个字典,保存在一个列表中
  • DataFrame 转元组(tuple)
  • DataFrame 转二维数组(ndarray)
  • 总结

Python将DataFrame格式转为Python中其他数据结构类型(总结)_第1张图片

DataFrame 转字典(dict)

Case 1:将某一列作为键,其余作为值

In[1] :key_name = 'name' # 选取作为键的列名
In[2] :df_4 = df.set_index(key_name).apply(lambda row: (row[0],row[1]),axis=1).to_dict()
 Out  :{'a': (10, 90), 
	    'b': (20, 80), 
	    'c': (30, 70), 
	    'd': (40, 60), 
	    'e': (50, 50)}

Case 2:键为行索引,值为所有列构成的元组

In[1] :df_3 = df.apply(lambda row: (row[:]),axis=1).to_dict() # 将df转换为字典
 Out  :{0: ('a', 10, 90),
 	    1: ('b', 20, 80),
        2: ('c', 30, 70),
        3: ('d', 40, 60),
        4: ('e', 50, 50)}

Case 3:列名作为键,每列的所有元素作为其对应的值

In[1] :key_name = 'name' # 选取作为键的列名
In[2] :df1 = df.to_dict(orient='list') # orient='list'表示将每一列转换为列表
 Out  :{'name': ['a', 'b', 'c', 'd', 'e'],
         'age': [10, 20, 30, 40, 50],
       'score': [90, 80, 70, 60, 50]}

Case 4:将每一行数据创建为一个字典,保存在一个列表中

In[1] :key_name = 'name' # 选取作为键的列名
In[2] :df_1 = df.to_dict(orient='records')
 Out  :[{'name': 'a', 'age': 10, 'score': 90},
 		{'name': 'b', 'age': 20, 'score': 80},
 		{'name': 'c', 'age': 30, 'score': 70},
 		{'name': 'd', 'age': 40, 'score': 60},
 		{'name': 'e', 'age': 50, 'score': 50}]

DataFrame 转元组(tuple)

In[1] :tuples = list(df.itertuples(index=False, name=None)) # index=True表示保留索引,name=None表示不保留列名
 Out  :[('a', 10, 90), 
        ('b', 20, 80),
        ('c', 30, 70),
        ('d', 40, 60), 
        ('e', 50, 50)]

DataFrame 转二维数组(ndarray)

In[1] :df_1 = df.values
 Out  :[['a' 10 90]
 		['b' 20 80]
 		['c' 30 70]
 		['d' 40 60]
 		['e' 50 50]]

总结

本篇帖子仅根据作者在数据分析中常见到的几种转换类型进行了介绍,若在数据分析中遇到其他形式的转换,可以联系作者一起进行交流!

你可能感兴趣的:(笔记,Python,数据分析,python,开发语言,笔记,数据分析)