如何使用熊猫从现有列中的值创建新的二分列

克雷斯托曼奇

我有一个看起来像这样的数据框:

ID       type       period
1        2          3
1        2          3
1        3          3
2        2          3
2        3          2
2        3          2
3        2          2

总共有X个类型和X个周期。并非所有类型/句点都会被使用,但我需要为每个类型的所有 X 创建列,以便从 Pandas 导入时表不会在数据库中中断。(假设本例中的 X 是 3,但实际上是 9,只是在本例中缩短了。)

对于每个 ID,我需要一个 0 来显示该类型/句点是否存在,一个 1 来显示它是否存在。

所需的数据框如下所示:

ID   type_1   type_2   type_3   period_1   period_2   period_3
1    0        1        1        0          0          1
2    0        1        1        0          1          1
3    0        1        0        0          1          0

任何对正确方向的建议将不胜感激!谢谢!

特伦塔利

从您的DataFrame

>>> import pandas as pd
>>> from io import StringIO

>>> df = pd.read_csv(StringIO("""
ID       type       period
1        2          3
1        2          3
1        3          3
2        2          3
2        3          2
2        3          2
3        2          2"""), sep='       ')
>>> df
    ID  type    period
0   1   2       3
1   1   2       3
2   1   3       3
3   2   2       3
4   2   3       2
5   2   3       2
6   3   2       2

我们可以groupby在列 'ID' 和 'type' 上使用它们来提取它们size,然后unstack是结果,用零填充 NaN,最后将其转换为booland intas you want01values :

>>> df.groupby(['ID','type']).size().unstack(fill_value=0).astype(bool).astype(int)
type    2   3
ID      
1       1   1
2       1   1
3       1   0

对于period列:

>>> df.groupby(['ID','period']).size().unstack(fill_value=0).astype(bool).astype(int)
period  2   3
ID      
1       0   1
2       1   1
3       1   0

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

熊猫:根据现有列中的值创建新列

使用数学和现有列在熊猫数据框中创建新值

删除R中的非二分列

熊猫从现有列值创建新列

如何使用daframe中现有列中的值创建新列

如何使用现有列中的值创建新列,以告知新值将来自哪一列?

拆分列中的所有值以创建新列

熊猫:在数据框中创建两个新列,并使用从现有列中计算出的值

熊猫:在数据框中创建两个新列,并使用从现有列中计算出的值

根据熊猫中的现有列创建新列

如何基于在熊猫数据框中具有NaN的现有列创建新列?

如何用熊猫中现有列之一中的列表中的名称创建新列,并从另一列中的列表中分配值?

根据现有列中的值创建新列

如何在R中从现有的列值动态创建列值的新列表

将一个因子列转换为 r 中的多个二分列

熊猫根据第一列以外的所有现有列的值创建新列

使用现有数据框中的值创建包含带有熊猫的二进制值列的数据框

如何基于R中现有列的值创建新列?

如何基于R中现有列的值和名称创建新列?

如何基于现有列在 Python 中创建新列

使用 Python 中的 Split 函数从现有列值创建新列

从 R 中的现有列值创建新列(使用其他列作为键)

熊猫根据现有列的第一个唯一值创建新列

熊猫:如何在数据框架中创建新列并考虑其他现有列在其中添加值

创建从现有列熊猫派生的新列

如何通过使用python中的现有列创建以其他列为条件的新列

如何使用条件从现有列在数据框中创建新列?

如何使用现有列的条件在 Dataframe 中创建新列?

如何在 Pandas 中创建逻辑以根据其他列中的现有值创建新列?