根据另一列值的一部分创建一个热编码列

扎基布特拉

我有这种数据框。

import pandas as pd

df = pd.DataFrame({'year': [1894, 1976, 1995, 2001, 1993]})

目前 dataframe

    year
0   1894
1   1976
2   1995
3   2001
4   1993

如何有效地添加一个热编码列,以便数据框看起来像这样。

预期的 dataframe

    year    1800s   1900s   2000s
0   1894      1       0       0
1   1976      0       1       0
2   1995      0       1       0
3   2001      0       0       1
4   1993      0       1       0

我已经尝试过下面的代码,并且可以正常工作。但是我认为有更好的解决方案,您能推荐我使用什么功能吗?谢谢!

编码

df['year'] = df['year'].astype(str)

df['1800s'] = df['year'].apply(lambda x: 1 if x[:2] == '18' else 0)
df['1900s'] = df['year'].apply(lambda x: 1 if x[:2] == '19' else 0)
df['2000s'] = df['year'].apply(lambda x: 1 if x[:2] == '20' else 0)
耶斯列尔

使用整数除法对前2位数字使用get_dummies,将列名称重命名为DataFrame.add_suffix,最后一次DataFrame.join用于添加至原始数字:

df = df.join(pd.get_dummies(df['year'] // 100).add_suffix('00s'))
print (df)
   year  1800s  1900s  2000s
0  1894      1      0      0
1  1976      0      1      0
2  1995      0      1      0
3  2001      0      0      1
4  1993      0      1      0

print (df['year'] // 100)
0    18
1    19
2    19
3    20
4    19
Name: year, dtype: int64

print (pd.get_dummies(df['year'] // 100).add_suffix('00s'))
   1800s  1900s  2000s
0      1      0      0
1      0      1      0
2      0      1      0
3      0      0      1
4      0      1      0

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

根据R中另一列的一部分更改列的值

根据另一列(Python Pandas)的值在列中添加一部分字符串

如何根据另一列减少数据框colunm值的一部分

用熊猫重复用另一列的一部分填充一列的值

如何提取datframe列的一部分并使用该提取创建另一个列

添加一个新列,并用Oracle SQL中另一列的一部分填充它

如何在熊猫中取一列的一部分与另一列的一部分匹配?

使用熊貓根據另一列的一部分更改列值

根据最后一个点拆分并使用字符串的最后一部分创建一个新列

用另一列中的值替换字符串的一部分

Pandas Dataframe用另一列中的值替换字符串的一部分

使用值从另一列中删除字符串的一部分

Excel-根据另一个单元格的一部分计算特定值

SQL 将列名的一部分放入另一列

将单元格的一部分与另一列进行比较

根据另一个索引列表删除列表的一部分

如何计算一个df列的时间值是另一个df.column的一部分?

将字符串的一部分从一列连接到另一列

如何返回行,其中一列中的文本值是MySQL中另一列中的文本值的一部分?

从另一个IList的一部分快速创建List

我如何在 python 中加入两列,而一列在每一行都有一个 url,另一列有 url 最后一部分的列表

基于列的一部分映射值

获取一个查询的值,使其成为另一个查询的一部分

根据值的第一部分的模式在列中排列/排序值

如何根据Oracle中另一列的内容删除列中的一部分字符串

根据列值替换 Pandas Dataframe 的一部分

Excel向导:如何创建一个公式,以将数字的一部分乘以一个单元格,另一部分乘以另一个

SQl如何检查列记录是否包含另一列记录的一部分

如何根据另一个张量的值更改 PyTorch 张量的一部分?