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

2 篇文章 0 订阅
1 篇文章 0 订阅

在这里插入图片描述

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]]

总结

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

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值