将熊猫列中的整数值转换为字符串[重复]
Posted
技术标签:
【中文标题】将熊猫列中的整数值转换为字符串[重复]【英文标题】:Converting an integer value in pandas column to string [duplicate] 【发布时间】:2021-08-07 12:07:09 【问题描述】:我有一个示例数据如下:
datetime x y
2021-05-01. 25. val1
2021-05-02. 50. val2
2021-05-03. 100 val3
2021-05-04. 25. val4
2021-05-05. 100. val5
2021-05-06. 50. val6
我想创建一个名为 z 的新列,它将 25 映射到低、50 到中、100 到高,预期输出如下所示:
datetime x y. z
2021-05-01. 25. val1. Low
2021-05-02. 50. val2. Medium
2021-05-03. 100 val3. High
2021-05-04. 25. val4. Low
2021-05-05. 100. val5. High
2021-05-06. 50. val6. Medium
【问题讨论】:
你可以查看这个:***.com/questions/19913659/… 【参考方案1】:你可以使用 numpy 选择:
conditions = [df['x'] == 25, df['x'] == 50, df['x'] == 100]
choices = ['Low', 'Medium', 'High']
df['z'] = np.select(conditions, choices)
输出:
datetime x y z
0 2021-05-01. 25. val1. Low
1 2021-05-02. 50. val2. Medium
2 2021-05-03. 100. val3. High
3 2021-05-04. 25. val4. Low
4 2021-05-05. 100. val5. High
5 2021-05-06. 50. val6. Medium
如果格式是字符串使用:
conditions = [df['x'] == '25.', df['x'] == '50.', df['x'] == '100.']
【讨论】:
【参考方案2】:你可以使用地图:
d = 25:'Low',50:'Medium',100:'high'
df['z'] = df['x'].map(d)
# datetime x y z
# 0 2021-05-01. 25.0 val1 Low
# 1 2021-05-02. 50.0 val2 Medium
# 2 2021-05-03. 100.0 val3 high
# 3 2021-05-04. 25.0 val4 Low
# 4 2021-05-05. 100.0 val5 high
# 5 2021-05-06. 50.0 val6 Medium
【讨论】:
【参考方案3】:pandas中有四种将整数转换为字符串的方法
1: frame[‘DataFrame Column’]= frame[‘DataFrame Column’].map(str)
2: frame[‘DataFrame Column’]= frame[‘DataFrame Column’].apply(str)
3: frame[‘DataFrame Column’]= frame[‘DataFrame Column’].astype(str)
4: frame[‘DataFrame Column’]= frame[‘DataFrame Column’].values.astype(str)
【讨论】:
以上是关于将熊猫列中的整数值转换为字符串[重复]的主要内容,如果未能解决你的问题,请参考以下文章