[英]Dataframe.loc on non-unique index
I have a dataframe
with a non-unique index.我有一个带有非唯一索引的
dataframe
。 I want to use .loc
on a dataframe
.我想在
dataframe
上使用.loc
。
data = [['tom', 10], ['nick', 15], ['juli', 14], ['tom', 12], ['tom', 64]]
df = pd.DataFrame(data, columns = ['Name', 'Age'])
df.set_index('Name', inplace = True)
When I try当我尝试
df.loc['tom': 'Age']
KeyError: "Cannot get left slice bound for non-unique label: 'tom'"
KeyError:“无法获取非唯一 label 的左切片绑定:'tom'”
Why is that?这是为什么? Can I only
.loc
on dataframes
with unique indexes?我只能在具有唯一索引的
dataframes
上使用.loc
吗?
You implementation is wrong.你的实现是错误的。
Age
is not an element of Name
index and moreover if you want to slice between rows then rows must be unique. Age
不是Name
索引的元素,而且如果你想在行之间切片,那么行必须是唯一的。 Suppose you can't apply .loc[]
on Name
index like 'tom':'nick'
because Name
are not unique.假设您不能在像
'tom':'nick'
这样的Name
索引上应用.loc[]
,因为Name
不是唯一的。
Check pandas.loc[] for more details.查看pandas.loc[]了解更多详情。
You could do something like this:你可以这样做:
import pandas as pd
data = [['tom', 10], ['nick', 15], ['juli', 14], ['tom', 12], ['tom', 64]]
df = pd.DataFrame(data, columns = ['Name', 'Age'])
df.set_index('Name', inplace = True)
df = df.loc['tom', 'Age']
print(df)
Output: Output:
Name
tom 10
tom 12
tom 64
Name: Age, dtype: int64
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.