目录
仅需一行代码实现对某字段下的所有数值实现同一机制的改变或转换(比如全部转为str类型/全部取平方值)
仅需一行代码实现对某字段下的所有数值实现同一机制的改变或转换(比如全部转为str类型/全部取平方值)
输出结果
1. name object 2. ID object 3. age object 4. age02 int64 5. age03 object 6. born datetime64[ns] 7. sex object 8. hobbey object 9. money float64 10. weight float64 11. test01 float64 12. test02 float64 13. dtype: object 14. name ID age age02 age03 born sex hobbey money weight \ 15. 0 Bob 1 NaN 14 14 NaT 男 打篮球 200.0 140.5 16. 1 LiSa 2 28 26 26 1990-01-01 女 打羽毛球 240.0 120.8 17. 2 Mary 38 24 24 1980-01-01 女 打乒乓球 290.0 169.4 18. 3 Alan None 6 6 NaT None 300.0 155.6 19. 20. test01 test02 21. 0 1.000000 1.000000 22. 1 2.123457 2.123457 23. 2 3.123457 3.123457 24. 3 4.123457 4.123457 25. name ID age age02 age03 born sex hobbey money weight \ 26. 0 Bob 1 NaN 14 14 NaT 男 打篮球 200.0 140.5 27. 1 LiSa 2 28 26 26 1990-01-01 女 打羽毛球 240.0 120.8 28. 2 Mary 38 24 24 1980-01-01 女 打乒乓球 290.0 169.4 29. 3 Alan None 6 6 NaT None 300.0 155.6 30. 31. test01 test02 age02_Square 32. 0 1.000000 1.0 196 33. 1 2.123457 2.123456789 676 34. 2 3.123457 3.123456781011126 576 35. 3 4.123457 4.123456789109999 36
实现代码
1. 2. 3. import pandas as pd 4. import numpy as np 5. 6. 7. 8. contents={"name": ['Bob', 'LiSa', 'Mary', 'Alan'], 9. "ID": [1, 2, ' ', None], # 输出 NaN 10. "age": [np.nan, 28, 38 , '' ], # 输出 11. "age02": [14, 26, 24 , 6], 12. "age03": [14, '26', '24' , '6'], 13. "born": [pd.NaT, pd.Timestamp("1990-01-01"), pd.Timestamp("1980-01-01"), ''], # 输出 NaT 14. "sex": ['男', '女', '女', None,], # 输出 None 15. "hobbey":['打篮球', '打羽毛球', '打乒乓球', '',], # 输出 16. "money":[200.0, 240.0, 290.0, 300.0], # 输出 17. "weight":[140.5, 120.8, 169.4, 155.6], # 输出 18. "test01":[1, 2.123456789, 3.123456781011126, 4.123456789109999], # 输出 19. "test02":[1, 2.123456789, 3.123456781011126, 4.123456789109999], # 输出 20. } 21. data_frame = pd.DataFrame(contents) 22. # data_frame.to_excel("data_Frame.xls") 23. print(data_frame.dtypes) 24. print(data_frame) 25. 26. 27. 28. # ML之DS:仅需一行代码实现对某字段下的所有数值实现同一机制的改变或转换(比如全部转为str类型/全部取平方值) 29. col='test02' 30. data_frame[col].astype("string") 31. data_frame[col]=data_frame[col].apply(str) 32. 33. def ChangeSquare(x): 34. return x*x 35. col='age02' 36. data_frame[col+'_Square']=data_frame[col].apply(ChangeSquare) 37. print(data_frame)