如何在数据框的值中添加前缀字符串

Posted

技术标签:

【中文标题】如何在数据框的值中添加前缀字符串【英文标题】:How to add a prefix string in the values of dataframe 【发布时间】:2021-07-08 20:33:27 【问题描述】:

这里我有一个只显示年份的最后两位数字的数据框:

YEAR  DWT   RFR
10    6571  1200
11    6421  1200
98    7786  3000
02    9191  1250

我想让它们作为一个完整的年份值,有什么解决方案吗?

预期输出:

YEAR    DWT   RFR
2010    6571  1200
2011    6421  1200
1998    7786  3000
2002    9191  1250

【问题讨论】:

YEAR 是 int 还是 object(string)? 您希望如何确定它是 2000 年代的值还是 1900 年代的值? 请从intro tour 重复on topic 和how to ask。 “告诉我如何解决这个编码问题”不是堆栈溢出问题。我们希望您做出诚实的尝试,然后然后就您的算法或技术提出一个具体的问题。 Stack Overflow 无意取代现有的文档和教程。 【参考方案1】:

这是你所期望的吗?当前年份可以作为支点。

>>> pivot_year = pd.Timestamp.now().year % 100

>>> df['YEAR'].astype(int) \
              .apply(lambda y: y + (2000 if y <= pivot_year else 1900))

0    2010
1    2011
2    1998
3    2002
Name: YEAR, dtype: int64

【讨论】:

【参考方案2】:

您可以通过以下方式实现:

from datetime import datetime

import pandas as pd

df1 = pd.DataFrame('YEAR': ['10', '11', '98', '02'], 'DWT': [6571, 6421, 7786, 9191], 'RFR': [1200, 1200, 3000, 1250])
df1['YEAR'] = [datetime.strptime("01/01/" + yr, "%m/%d/%y").year for yr in df1['YEAR']]
print(df1)

   YEAR   DWT   RFR
0  2010  6571  1200
1  2011  6421  1200
2  1998  7786  3000
3  2002  9191  1250

【讨论】:

以上是关于如何在数据框的值中添加前缀字符串的主要内容,如果未能解决你的问题,请参考以下文章

从组合框的值中获取选项的文本[重复]

如何使用 re 库提取 xml 值中给定标签列表的值? [复制]

通过添加前缀 -in R 重命名数据框的列

如何在 Swift 中为 UISlider 的值添加百分号

如何在 apollo graphQL 服务器的枚举值中添加特殊字符?

如何将组合框的值转换为 vba 模块中的字符串?