将两个维度结合到一个维度实现降维

  1. # 将两个维度结合到一个维度实现降维
  2. cols = pd.MultiIndex.from_tuples([("a", "b"), ("a", "c"),("d", "b"), ("d", "c")])
  3. df = pd.DataFrame([[1,2,5,6], [3,4,7,8], [5,3,9,1]], columns=cols)
  4. print(df)
  5. df.columns = ['_'.join(col) for col in df.columns]
  6. print(df)

image.png

droplevel降维

  1. import pandas as pd
  2. import numpy as np
  3. cols = pd.MultiIndex.from_tuples(
  4. [("a", "b"), ("a", "c"),("d", "b"), ("d", "c")]
  5. , names=['c1', 'c2'])
  6. df = pd.DataFrame([[1,2,5,6], [3,4,7,8], [5,3,9,1]]
  7. , columns=cols).set_index([[0,0,1],['b', 'c', 'b']]).rename_axis(['i1', 'i2'])
  8. print('原数据')
  9. print(df)
  10. print('删除1级索引列')
  11. print(df.droplevel('c1', axis=1))
  12. print('删除2级索引列')
  13. print(df.droplevel('c2', axis=1))
  14. print('删除1级索引行')
  15. print(df.droplevel('i1', axis=0))
  16. print('删除1级索引行')
  17. print(df.droplevel('i2', axis=0))

image.png
https://www.cjavapy.com/article/433/