[英]Python pandas: Why doesnt `del df.loc[:,column_name]` work? (Even though `del df[column_name]` does?
[英]How do df['column_name'] and df[['column_name']] work in pandas?
我知道前一個給了我一個系列,而這封信給了一個 dataframe。我無法得到它的 arguments。df df[['column_name']]
給了 dataframe。這就是我發送['column_name']
一個迭代作為它的data=
參數? 我正在努力了解 python 在這里的工作方式:我的結果如下:
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,其中有一列名為column_name
你清楚地注意到了……
與系列相比,數據框有一些不同的方法可供使用。 如果沒有更多信息,很難說出您想使用哪一個。
為了選擇 dataframe 的某些列,索引不能只是任何可迭代的。 (例如,字符串是可迭代的。)根據文檔,它必須是一個列表,盡管通過一些快速測試,其他一些可迭代對象也可以工作:
迭代器
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
Dicts 和 sets 也可以工作,但它們已被棄用。
相反,元組不能用於 select 多列:
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.