Python Pandas loc切片问题

  统计/机器学习 数据预处理 Python    浏览次数:1438        分享
0


有一个如上图的dataframe,我想只选择第一行和第三行,我采用如下的方式报错,请问下是为什么呢?

采用loc的方式:

df.loc['2013-01-01', '2013-01-03']

报错提示:

 

Bobby   2019-08-28 11:32



   2个回答 
1

要看Date是index还是column,你可以试试下面这两个

df.loc[['2013-01-01', '2013-01-03']]

或者

df.loc[df['Date'].isin(['2013-01-01', '2013-01-03'])]
SofaSofa数据科学社区DS面试题库 DS面经

xiaosu   2019-08-28 14:43

谢谢,试了,都不行。 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
1

中括号得是两个

df.loc[['2013-01-01', '2013-01-03']]

如果不对是不是数据类型的问题,试试这个

df.loc[pd.to_datetime(x) for x in ['2013-01-01','2013-01-03']]


SofaSofa数据科学社区DS面试题库 DS面经

xwemin   2019-08-28 17:21



  相关主题

pandas dataframe对行去重?   1回答

pandas df怎么根据weekgroup补齐没有的行呢   1回答

对pandas.DataFrame进行groupby结果中index的问题   2回答

pandas怎么读入tsv格式的数据   2回答

pandas怎么求一列的移动中位数?   1回答

pandas groupby agg中使用自定义函数   1回答

pandas新建一个只有一行的dataframe时结果返回空的dataframe   1回答

pd Series的用法问题   1回答

pandas读取文件夹中所有的csv文件   1回答

如何复制一个pandas DataFrame   1回答

嵌套dictionary类型数据转成pandas dataframe的问题   2回答

pandas怎么按照groupby串联字符串?   2回答



回答问题时需要注意什么?

我们谢绝在回答前讲“生动”的故事。

我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。

我们谢绝答非所问。

我们谢绝自己不会、硬要回答。

我们感激每一个用户在编写答案时的努力与付出!