我知道前一个字母给了我一个序列,而字母给了一个数据帧。我不能理解的是它的论点。df[['column_name']]
正在给出数据帧。这就是我发送['column_name']
作为其data=
参数的迭代的原因吗?我很纠结蟒蛇在这里是怎么工作的!我的结果如下:
df['Yil']=
bir 2021
ikki 2020
19 2019
18 2018
17 2017
16 2016
15 2015
10 2010
df[['Yil']]=
Yil
bir 2021
ikki 2020
19 2019
18 2018
17 2017
16 2016
15 2015
10 2010
Name: Yil, dtype: int64
df['column_name']
返回作为列的序列
df[['column_name']]
返回一个DataFrame,该DataFrame有一列名为column_name
你清楚地注意到了。。。
与系列相比,数据帧有一些不同的方法。如果没有更多的信息,很难判断你想使用哪一个。
对于选择数据帧的某些列,索引不能只是任何可迭代的。(例如,字符串是可迭代的。(根据文档,它必须是列表,尽管通过一些快速测试,其他一些可迭代的内容也可以:
迭代
In [2]: df = pd.DataFrame({'a': [2, 3], 'b': [4, 5], 'c': [6, 7]})
In [3]: df[['a']]
Out[3]:
a
0 2
1 3
In [4]: df[iter(['a'])] # Dummy iterator
Out[4]:
a
0 2
1 3
In [5]: df[(x for x in ['a'])] # Dummy generator, a kind of iterator
Out[5]:
a
0 2
1 3
范围
In [6]: df1 = pd.DataFrame([['a', 'b'], ['c', 'd']])
In [7]: df1[range(1)]
Out[7]:
0
0 a
1 c
字典和集合也可以,但它们已被弃用。
相反,元组不能用于选择多列:
In [8]: df[('a',)]
Traceback (most recent call last):
...
KeyError: ('a',)
因为需要有可能进行多级列索引:
In [9]: df2 = pd.DataFrame(
...: [[2, 4], [3, 5]],
...: columns=pd.MultiIndex.from_tuples([('a', 'b'), ('a', 'c')]))
In [10]: df2
Out[10]:
a
b c
0 2 4
1 3 5
In [11]: df2[('a', 'c')]
Out[11]:
0 4
1 5
Name: (a, c), dtype: int64