【问题标题】:What happen when I use double bracket with DataFrame?当我在 DataFrame 中使用双括号时会发生什么?
【发布时间】:2021-12-04 05:36:09
【问题描述】:

当我这样做时

test = pd.DataFrame([[1, 2, 3], [4, 5, 6]])
print(type(test))
print(test)
print('\n')
print(type(test[1]))
print(test[1])
print('\n')
print(type(test[[1]]))
print(test[[1]])

我明白了。

<class 'pandas.core.frame.DataFrame'>
   0  1  2
0  1  2  3
1  4  5  6


<class 'pandas.core.series.Series'>
0    2
1    5
Name: 1, dtype: int64


<class 'pandas.core.frame.DataFrame'>
   1
0  2
1  5

我认为当我指定 DataFrame 列的键之一时,我很自然会得到系列。

但我不明白为什么当我在双括号中指定 DataFrame 列的键之一时会得到 DataFrame。

发生了什么?

【问题讨论】:

  • test[1] 时您没有指定行键,但实际上您正在访问数据框的第 1 列。检查您的列名,它们是 0, 1, 2。现在,当您尝试访问此 df[[1]] 时,您正在传递一个列列表,即 [1],这就是它返回一个数据框的原因
  • 感谢您的回答。现在我明白发生了什么。请在回答中写出来,以便我支持您的回答。

标签: python pandas brackets


【解决方案1】:

您在执行test[1] 时没有指定行键,但实际上您正在访问数据框的列1。检查您的列名,它们是0, 1, 2。现在,当您尝试访问此 df[[1]] 时,您正在传递一个列列表,即 [1],这就是它返回一个数据框的原因。

请阅读以下内容: What is the difference between a pandas Series and a single-column DataFrame?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-22
    • 2016-11-11
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    • 2018-11-16
    相关资源
    最近更新 更多