【发布时间】:2018-12-11 01:59:11
【问题描述】:
我有一个从较大的框架中解析出来的数据框,如下所示:
Contract Date
2012.0
2011.0
2011.0
2010.0
1312.0
1235.0
1235.0
1235.0
1230.0
.
.
111.0
111.0
110.0
110.0
我已将整个内容转换为字符串,以便我可以对值进行切片,因为这些日期的格式非常奇怪。
基本上,2012.0 - 2010.0 是每年的 12 月(2012 年 - 2010 年),但像 1235.0 和 110.0 这样的日期是 MMYY 格式 - 1235.0 是 2035 年 12 月,110.0 是 2010 年 1 月。
我想要的是创建一个简单的循环来迭代这些日期,并根据我上面描述的条件将它们转换为月份和年份。我尝试先使用iterrows 尝试获取月份:
for index, row in contract.iterrows():
if len(row) > 4:
contract['Month'] = contract['Contract_Exp_Date'].str[:2]
else:
contract['Month'] = contract['Contract_Exp_Date'].str[:1]
但这不起作用并且循环了很长时间 - 可能是因为我需要 appending 到一个新列,而不是在每次迭代时创建一个新列 Month。
如何根据我上面提到的条件正确地遍历每一行并抓取月份和年份?
【问题讨论】:
标签: python string python-3.x pandas