在python中设置日期列
目前,我有一个如下所示的表:在python中设置日期列,python,pandas,Python,Pandas,目前,我有一个如下所示的表: 我试图给年栏中的每个月一个年值(例如,2011年9月=9日,2011年12月=12日,2012年3月=3日等)。我完全不知道如何做到这一点,因为我刚刚接触熊猫。有人对如何使用pandas进行管理有什么建议吗 首先,当你提问时,请不要包括数据帧的图像,而是包括可复制的数据。看一看如何写出一个好问题 对于您的问题,首先,请查看表的来源。例如,它是否在Excel中,您可以在那里解决问题吗 如果确实需要使用pandas解决问题,以下是一种方法: 首先是一些样本数据,年份和
我试图给年栏中的每个月一个年值(例如,2011年9月=9日,2011年12月=12日,2012年3月=3日等)。我完全不知道如何做到这一点,因为我刚刚接触熊猫。有人对如何使用pandas进行管理有什么建议吗 首先,当你提问时,请不要包括数据帧的图像,而是包括可复制的数据。看一看如何写出一个好问题 对于您的问题,首先,请查看表的来源。例如,它是否在Excel中,您可以在那里解决问题吗 如果确实需要使用
pandas
解决问题,以下是一种方法:
首先是一些样本数据,年份和月份混合在同一列中
import pandas as pd
import numpy as np
data = pd.DataFrame({
'key': ['2017', 'November', 'December', '2018', 'January']
})
第一步是将年数的实例提取到新列中,然后“向前填充”以向前广播这些值。一行:
data['years'] = pd.Series([i if i.isnumeric() else np.nan for i in data['key']]).fillna(method = 'ffill')
现在,删除年数的行。在您的数据中,似乎没有关联的数据
data = data[~data['key'].str.isnumeric()]
给我们:
key years
1 November 2017
2 December 2017
4 January 2018
设置(可复制示例)
能行
m = pd.Series([str(x) if type(x)==int else np.nan for x in df.index])
df.index = m.ffill().astype(str) + ' ' + df.index.astype(str)
df.loc[~df.isnull().all(1),:]
col1 col2
2011 September 2.0 20.0
2011 December 3.0 30.0
2012 March 5.0 50.0
2012 June 6.0 60.0
2012 April 7.0 70.0
这非常有效,非常感谢!对问题格式表示歉意,请下次注意:)
m = pd.Series([str(x) if type(x)==int else np.nan for x in df.index])
df.index = m.ffill().astype(str) + ' ' + df.index.astype(str)
df.loc[~df.isnull().all(1),:]
col1 col2
2011 September 2.0 20.0
2011 December 3.0 30.0
2012 March 5.0 50.0
2012 June 6.0 60.0
2012 April 7.0 70.0