【问题标题】: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 topichow to ask。 “告诉我如何解决这个编码问题”不是堆栈溢出问题。我们希望您做出诚实的尝试,然后然后就您的算法或技术提出一个具体的问题。 Stack Overflow 无意取代现有的文档和教程。

标签: python pandas dataframe prefix


【解决方案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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-07-12
      • 1970-01-01
      • 1970-01-01
      • 2020-10-29
      • 2023-03-24
      • 2013-11-30
      相关资源
      最近更新 更多