Pandas:取DataFrame的行与列

旧城等待, 2022-12-05 13:59 264阅读 0赞

DatFrame是一种二维数据格式,类似于Excel表中的数据。

  1. import pandas as pd
  2. import numpy as np
  3. df = pd.DataFrame(np.arange(24).reshape(6,4),index=list("ABCDEF"),columns=list("WXYZ"))
  4. # df 输出的结果为:
  5. W X Y Z
  6. A 0 1 2 3
  7. B 4 5 6 7
  8. C 8 9 10 11
  9. D 12 13 14 15
  10. E 16 17 18 19
  11. F 20 21 22 23

1、pandas排序,并取前N列数据

  1. # df_sorted = df.sort_values(by="列名")
  2. df_sorted = df.sort_values(by="Z")[:3] Z列排序,并取前三行
  3. # 输出结果为:
  4. W X Y Z
  5. A 0 1 2 3
  6. B 4 5 6 7
  7. C 8 9 10 11

2、取行

  1. df.loc["D"] # loc取单行
  2. # 输出结果为:
  3. W 12
  4. X 13
  5. Y 14
  6. Z 15
  7. df.loc["A":"D"] # loc取连续多行
  8. # 输出结果为:
  9. W X Y Z
  10. A 0 1 2 3
  11. B 4 5 6 7
  12. C 8 9 10 11
  13. D 12 13 14 15
  14. df.loc[["A","D"]]     # loc取不连续多行
  15. # 输出结果为:
  16. W X Y Z
  17. A 0 1 2 3
  18. D 12 13 14 15
  19. df.iloc[0] # iloc取单行
  20. # 输出结果为:
  21. W 0
  22. X 1
  23. Y 2
  24. Z 3
  25. df.iloc[1:3] # iloc取连续多行
  26. # 输出结果为:
  27. W X Y Z
  28. B 4 5 6 7
  29. C 8 9 10 11
  30. df.iloc[[0,2,3]] # iloc取不连续多行
  31. # 输出结果为:
  32. W X Y Z
  33. A 0 1 2 3
  34. C 8 9 10 11
  35. D 12 13 14 15

3、取列

  1. df.loc[:,"Y"]
  2. # 输出结果为: # loc取单列
  3. A 2
  4. B 6
  5. C 10
  6. D 14
  7. E 18
  8. F 22
  9. Name: Y, dtype: int32
  10. df.loc[:,"X":"Z"]
  11. # 输出结果为: # loc取连续多列
  12. X Y Z
  13. A 1 2 3
  14. B 5 6 7
  15. C 9 10 11
  16. D 13 14 15
  17. E 17 18 19
  18. F 21 22 23
  19. df.loc[:,["X","Z"]] # loc取不连续多列
  20. # 输出结果为:
  21. X Z
  22. A 1 3
  23. B 5 7
  24. C 9 11
  25. D 13 15
  26. E 17 19
  27. F 21 23
  28. df.iloc[:,2] # iloc取单列
  29. # 输出结果为:
  30. A 2
  31. B 6
  32. C 10
  33. D 14
  34. E 18
  35. F 22
  36. Name: Y, dtype: int32
  37. df.iloc[:,1:3] # iloc取连续多列
  38. # 输出结果为:
  39. X Y
  40. A 1 2
  41. B 5 6
  42. C 9 10
  43. D 13 14
  44. E 17 18
  45. F 21 22
  46. df.iloc[:,[0,2]] # iloc取不连续多列
  47. # 输出结果为:
  48. W Y
  49. A 0 2
  50. B 4 6
  51. C 8 10
  52. D 12 14
  53. E 16 18
  54. F 20 22

4、取行和列

  1. df.loc["C","Y"] # loc取单行单列,即为某一个坐标的值
  2. # 输出结果为:
  3. 10
  4. df.loc["A":"C","X":"Z"] # loc取连续多行多列
  5. # 输出结果为:
  6. X Y Z
  7. A 1 2 3
  8. B 5 6 7
  9. C 9 10 11
  10. df.loc[["A","C","E"],["W","Y"]] # loc取不连续多行多列
  11. # 输出结果为:
  12. W Y
  13. A 0 2
  14. C 8 10
  15. E 16 18
  16. df.iloc[2,2] # iloc取单行单列,即为某一个坐标的值
  17. # 输出结果为:
  18. 10
  19. df.iloc[0:3,1:4] # iloc取连续多行多列
  20. # 输出结果为:
  21. X Y Z
  22. A 1 2 3
  23. B 5 6 7
  24. C 9 10 11
  25. df.iloc[[0,2,4],[0,2]] # iloc取不连续多行多列
  26. # 输出结果为:
  27. W Y
  28. A 0 2
  29. C 8 10
  30. E 16 18

发表评论

表情:
评论列表 (有 0 条评论,264人围观)

还没有评论,来说两句吧...

相关阅读