【问题标题】:Why does .iloc work but not .loc while indexing pandas dataframe为什么在索引熊猫数据框时.iloc有效但.loc无效
【发布时间】:2019-10-14 13:09:16
【问题描述】:

当我尝试用整数指定一行时,它工作正常,但当我尝试使用标签时,我收到错误“KeyError: 'Week 3'”

file which is loaded

df = pd.read_csv('Size_Breakdown_crosstab.csv', sep='\t')
df1 = df.loc["Week 3"]
df2 = df.iloc[3]

【问题讨论】:

  • 在您的 read_csv 中指定 index_col
  • Period 是一列而不是索引,因此loc 在您的索引中找不到Week 3。使用df = pd.read_csv('Size_Breakdown_crosstab.csv', sep='\t', index_col='Period'),那么它应该可以正常工作
  • df.loc[df['Period'] == "Week 3"]df.set_index('period'); df.loc["Week 3"]

标签: python pandas indexing


【解决方案1】:

您的索引标签可能是数字的,因为默认情况下pandas.read_csv 会在您的 DataFrame 中添加一个数字索引列。

您需要明确说明使用哪一列作为索引,例如:

df = pd.read_csv('Size_Breakdown_crosstab.csv', sep='\t', index_col=0)

它将第一列视为索引列。

【讨论】:

    猜你喜欢
    • 2021-12-06
    • 2020-07-09
    • 1970-01-01
    • 2021-05-17
    • 2020-07-05
    • 2013-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多