将pandas数据帧列数据分离为新的列



我的数据列结合了两个轴上的信息:财富和人生阶段。我需要将两位代码的"十"位和"一"位分解为两个新的序数变量。如何对这些数据进行分离和重新编码?

这是列的数据字典:

  • -1:未知
  • 11:富裕家庭-婚前夫妇;单身
  • 12:富裕家庭-有孩子的年轻夫妇
  • 13:富裕家庭-有学龄儿童的家庭
  • 14:富裕家庭-老年家庭;成熟的情侣
  • 15:富裕家庭-退休老人
  • 21:富裕家庭-家庭前夫妇;单身
  • 22:富裕家庭-有孩子的年轻夫妇
  • 23:富裕家庭-有学龄儿童的家庭
  • 24:富裕家庭-老年家庭&成熟的情侣
  • 25:富裕家庭-退休老人
  • 31:舒适的家庭-家庭前夫妇&单身
  • 32:舒适的家庭-有孩子的年轻夫妇
  • 33:舒适的家庭-有学龄儿童的家庭
  • 34:舒适的家庭-老年家庭&成熟的情侣
  • 35:舒适的家庭-退休老人
  • 41:不太富裕的家庭-家庭前夫妇;单身
  • 42:不太富裕的家庭-有孩子的年轻夫妇
  • 43:不太富裕的家庭-有学龄儿童的家庭
  • 44:不太富裕的家庭-老年家庭&成熟的情侣
  • 45:不太富裕的家庭-退休老人
  • 51:贫困家庭-婚前夫妇;单身
  • 52:贫困家庭-有孩子的年轻夫妇
  • 53:贫困家庭-有学龄儿童的家庭
  • 54:贫困家庭-老年家庭;成熟的情侣
  • 55:贫困家庭-退休老人

我尝试了np.where((并创建了条件:

我使用过.map((:

data2.map({11:'Wealthy', 12:'Wealthy', 13:'Wealthy', 14:'Wealthy', 15:'Wealthy',
#          21:'Prosperous', 22:'Prosperous', 23:'Prosperous', 24:'Prosperous', 25:'Prosperous',
#          31:'Comfortable', 32:'Comfortable', 33:'Comfortable', 34:'Comfortable', 35:'Comfortable',
#          41:'Less_Afflutent', 42:'Less_Afflutent', 43:'Less_Afflutent', 44:'Less_Afflutent', 45:'Less_Afflutent',
#          51:'Poorer', 52:'Poorer', 53:'Poorer', 54:'Poorer', 55:'Poorer'})

我也尝试过一些其他的东西,但似乎都不值得发布。我是新来的,还在学习,但我以前从未遇到过这样的问题,我在谷歌上搜索了很多

如果我正确理解这个问题,您需要将当前状态列拆分为两个新列,然后为每个列进行映射。

# Assuming your current column is called 'status'
df['tens_place'] = df['status']//10 # whole number of division, no remainder, gives -1 for -1
df['ones_place'] = df['status']%10 # just remainder, gives 9 for -1
tens_map = tens_map = {1:'Wealthy Households',2:'Prosperous households',
3:'Comfortable Households',4:'Less Affluent households' ,5:'Poorer households',
-1:'unknown'}
ones_map = ... # same sorta thing
df['wealth_status'] = df['tens_place'].map(tens_map)
df['family_status'] = df['ones_place'].map(ones_map)

最新更新