Python DataFrame常用的数据转换操作

本文详细介绍了一种车牌数据处理流程,包括自定义字典进行数据映射、车牌信息提取、标签处理及one-hot编码应用。通过具体实例,展示了如何使用Python的pandas库进行数据预处理,为后续的机器学习任务做好准备。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、创建实例 DataFrame

# 创建一个空的 DataFrame
#df = pd.DataFrame(columns=['车牌号', '车型', '标签'])
df = pd.DataFrame([['沪C 100232', '奔驰', 'Y'], 
                   ['鲁A 801353', '奥迪', 'N'], 
                   ['豫H 666132', '宝马', 'Y']])
 
df.columns = ['车牌号', '车型', '标签']

	  车牌号	    车型  标签
0	沪C 100232	奔驰   Y
1	鲁A 801353	奥迪   N
2	豫H 666132	宝马   Y

1.1 自定义字典,map转换’车型’数据

# 奔驰 -> 1, 奥迪 -> 2, 宝马 -> 3.
mapping_1 = {'奔驰': 1,
             '奥迪': 2,
             '宝马': 3}
             
df['车型'] = df['车型'].map(mapping_1)

        车牌号  车型  标签
0	沪C 100232	1    Y
1	鲁A 801353	2    N
2	豫H 666132	3    Y

1.2 提取’车牌号’列数据信息

# 沪C 100232 ->沪C , 鲁A 801353 ->鲁A , 豫H 666132 ->豫H.
df['车牌号'] = list(map(lambda var: var[:2],df['车牌号'].tolist()))

    车牌号  车型   标签
0	沪C	    1     Y
1	鲁A	    2	  N
2	豫H	    3 	  Y

1.3 处理’标签’列数据

# Y ->0 , N ->1 , Y ->0.
mapping_2 = {value:ind for ind,value in enumerate(set(df['标签']))}
df['标签'] = df['标签'].map(mapping_2)


    车牌号	 车型	标签
0	沪C    	  1	     0
1	鲁A	      2	     1
2	豫H	      3	     0

1.4 one_hot’车牌号’列数据

pd.get_dummies(df)
#pd.get_dummies(df['车牌号'])


	车型    标签     车牌号_沪C   车牌号_豫H	车牌号_鲁A
0	 1	     0	        1	        0	        0
1	 2	     1      	0	        0	        1
2	 3	     0      	0	        1	        0

1.5 待更新

在这里插入图片描述

可以使用apply函数或map函数来对DataFrame的整列数据进行格式转换。例如,引用中的代码展示了如何使用apply函数将整列数据添加千分位分隔符。首先,导入pandas库和numpy库,创建一个DataFrame对象。然后,使用apply函数和lambda函数将num列中的数据转换为带有千分位分隔符的格式。最后,打印出转换后的DataFrame。 引用中的代码展示了如何使用apply函数或map函数将整列数据格式转换为百分比形式。首先,导入pandas库和numpy库,创建一个DataFrame对象。然后,使用apply函数和lambda函数将A1列中的数据转换为百分比形式,并指定保留的小数位数。同样地,也可以使用map函数实现相同的功能。最后,打印出转换后的DataFrame。 引用中的代码展示了如何使用round函数来保留DataFrame中的小数点后指定位数的小数。首先,导入pandas库和numpy库,创建一个DataFrame对象。然后,使用round函数指定保留的小数位数。最后,打印出保留指定小数位数后的DataFrame。 综上所述,可以根据具体需求使用apply函数、map函数或round函数来对DataFrame的整列数据进行格式转换。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [python DataFrame数据格式化(设置小数位数,百分比,千分位分隔符)](https://blog.youkuaiyun.com/weixin_48964486/article/details/123329042)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值