有一个如上图的dataframe,我想只选择第一行和第三行,我采用如下的方式报错,请问下是为什么呢?
采用loc的方式:
df.loc['2013-01-01', '2013-01-03']
报错提示:
2个回答
要看Date是index还是column,你可以试试下面这两个
df.loc[['2013-01-01', '2013-01-03']]或者
df.loc[df['Date'].isin(['2013-01-01', '2013-01-03'])]
				谢谢,试了,都不行。
1. df.loc[['2013-01-01', '2013-01-03']]
报错:KeyError: "None of [Index(['2013-01-01', '2013-01-03'], dtype='object', name='Date')] are in the [index]"
2. df.loc[df['Date'].isin(['2013-01-01', '2013-01-03'])]
报错:KeyError: 'Date'
但是用.iloc就可以实现类似的需求:
df.iloc[[1, 3], 4:]
是.loc不支持这种了吗?还是我哪里操作不对,尴尬~
				- 
             Bobby 
           
				
          
          2019-08-28 15:16
			
				你看看你的'2013-01-01'是日期形式还是字符串形式。如果是日期形式的你就试试下面xwemin的答案。
				- 
             xiaosu
           
				
          
          2019-08-28 23:53
			
中括号得是两个
df.loc[['2013-01-01', '2013-01-03']]
如果不对是不是数据类型的问题,试试这个
df.loc[pd.to_datetime(x) for x in ['2013-01-01','2013-01-03']]
 
     
						 
               
               相关讨论
  相关讨论 随便看看
  随便看看