【问题标题】:How to encode labels in multiple pandas dataframes?如何在多个熊猫数据框中编码标签?
【发布时间】:2020-02-01 14:13:36
【问题描述】:

我有 2 个数据框 df1 和 df2

两者都有 3 列:

c1, c2, c3

但在 df1 的 c3 列中,我有这些独特的标签:

l1, l2, l3, l4

在 df2 的 c3 列中,我有这些独特的标签:

l2, l3, l4, l5

我想对这些标签进行编码,以便 df1 的最后一列值变成这样:

1, 2, 3, 4

和df2:

2, 3, 4, 5

因此,两个数据帧中的编码标签应该具有相同的名称。 标签不按顺序排列。而且不常见的标签可能不止1个。

【问题讨论】:

  • 如果这正是您的问题,请使用df1['c3'] = df1['c3'].str[1:]df2['c3'] = df2['c3'].str[1:]。如果您有更一般的问题(我怀疑),请将问题更改为更一般的问题。
  • 标签不按顺序排列。并且不常见的标签可能不止 1 个。

标签: python pandas


【解决方案1】:

使用以下命令:

>>> df1
   c3
0  l1
1  l2
2  l3
3  l4
>>> df1["c3"].apply(lambda x: x[-1])
0    1
1    2
2    3
3    4

也将其应用于 df2:

>>> df1["c3"].apply(lambda x: x[-1])

【讨论】:

  • 如果可能,最好避免使用pandas' applymap,因为它们会创建后台循环。你写的更好的选择是df['c3'] = df['c3'].str[-1]
  • 我提到了 apply 因为作者没有提到任何编码逻辑。如果是特定的编码逻辑,那么 str 将被一些 apply 函数替换。
猜你喜欢
  • 2021-07-28
  • 2018-05-30
  • 1970-01-01
  • 2020-01-11
  • 2021-12-13
  • 2018-08-12
  • 2019-10-05
  • 1970-01-01
  • 2023-01-23
相关资源
最近更新 更多