我正在尝试从CSV中切片项目这里是示例在这里输入图像描述
df1 = pandas.read_csv("supermarkets.csv")
df1
ID Address City State Country Name Employees
0 1 3666 21st St San Francisco CA 94114 USA Madeira 8
1 2 735 Dolores St San Francisco CA 94119 USA Bready Shop 15
2 3 332 Hill St San Francisco California 94114 USA Super River 25
3 4 3995 23rd St San Francisco CA 94114 USA Ben's Shop 10
4 5 1056 Sanchez St San Francisco California USA Sanchez 12
5 6 551 Alvarado St San Francisco CA 94114 USA Richvalley 20
df2 = df1.loc["735 Dolores St":"332 Hill St","City":"Country"]
df2在output中,我只得到以下输出
City State Country我该如何纠正?
发布于 2020-07-22 18:32:20
正如您在pandas documentation中所看到的那样,.loc[]可以通过标签或布尔数组来访问一组行和列。
您不能使用系列中的值直接选择。
在您的示例df1.loc["735 Dolores St":"332 Hill St","City":"Country"]中,您将获得一个空选择,因为只有"City":"Country"是有效的访问器。
"735 Dolores St":"332 Hill St"将返回空行选择,因为它们不是索引上的标签。
如果需要特定行,可以尝试使用.iloc[[1,2], "City":"Country"]按索引进行选择。
发布于 2020-07-22 18:44:31
df.loc主要是基于标签的,通常使用索引对行进行切片。在这种情况下,您可以使用数字索引或将地址设置为索引
print(df)
ID Address City State Country Name Employees
0 1 3666 21st San Francisco CA 94114 USA Madeira 8
1 2 735 Dolores San Francisco CA 94114 USA Bready Shop 15
2 3 332 Hill San Francisco CA 94114 USA Super River 25
df2=df.loc[1:2,'City':'Country']
print(df2)
City State Country
1 San Francisco CA 94114 USA
2 San Francisco CA 94114 USA或
df2=df.set_index('Address').loc['735 Dolores':'332 Hill','City':'Country']
print(df2)
City State Country
Address
735 Dolores San Francisco CA 94114 USA
332 Hill San Francisco CA 94114 USAhttps://stackoverflow.com/questions/63031975
复制相似问题