如何通过标识整数转换数据框列的每个值
Posted
技术标签:
【中文标题】如何通过标识整数转换数据框列的每个值【英文标题】:How to convert each value of a dataframe column by an identifying integer 【发布时间】:2020-06-03 11:56:46 【问题描述】:我有以下数据框:
import pandas as pd
df = pd.DataFrame(dict(NoMatter=list(range(6)), Value=['a','b',7,7,'b','b']))
print(df)
NoMatter Value
0 0 a
1 1 b
2 2 7
3 3 7
4 4 b
5 5 b
我想修改 Value 列,例如它包含旧值的不同整数。因此,在这里,我想用 1 代替每个 a,用 2 代替每个 b,用 3 代替每个 7。
预期结果:
NoMatter Value
0 0 1
1 1 2
2 2 3
3 3 3
4 4 2
5 5 2
请问我该怎么办?
【问题讨论】:
【参考方案1】:使用factorize
:
df['Value'] = pd.factorize(df['Value'])[0] + 1
print (df)
NoMatter Value
0 0 1
1 1 2
2 2 3
3 3 3
4 4 2
5 5 2
【讨论】:
以上是关于如何通过标识整数转换数据框列的每个值的主要内容,如果未能解决你的问题,请参考以下文章
Pandas:如何将数据框列中的“时间戳”值从对象/字符串转换为时间戳?