data1 = {'key':['b','b','a','c','a','a','b'], 'data':range(7)}
df1 = pd.DataFrame(data1)
它被安排爲數據,然後按鍵。爲什麼它沒有安排在關鍵,然後數據?爲什麼在熊貓的DataFrame排列字符串之前?
我是否需要指定列?
data1 = {'key':['b','b','a','c','a','a','b'], 'data':range(7)}
df1 = pd.DataFrame(data1)
它被安排爲數據,然後按鍵。爲什麼它沒有安排在關鍵,然後數據?爲什麼在熊貓的DataFrame排列字符串之前?
我是否需要指定列?
data1
是一本詞典,因此元素存儲在arbitrary order中。現在,你每次看到這個特定順序的原因是因爲如果沒有明確的列參數,熊貓frame constructor做sort the dictionary keys。
構造簡單的使用:
>>> sorted(['key', 'data'])
['data', 'key']
所以你會每次得到的列相同的排序。您可以(必須)明確指定列參數,以按您想要的順序存儲它們。
>>> pd.DataFrame(data1, columns=['key', 'data'])
key data
0 b 0
1 b 1
2 a 2
3 c 3
4 a 4
5 a 5
6 b 6
您可以使用OrderedDict
從collections
庫,以確保我們保持相同的順序。
from collections import OrderedDict
data1 = OrderedDict({'key': ['b','b','a','c','a','a','b'], 'data': range(7)})
df1 = pd.DataFrame(data1)
df1
key data
0 b 0
1 b 1
2 a 2
3 c 3
4 a 4
5 a 5
6 b 6
「關鍵」這個詞沒有什麼特別之處。如果你想通過「key」對數據框進行排序,那麼執行:'df1.sort_values('key')'。你可能會混淆「關鍵」和索引。 – DyZ
'data1'是一個字典,因此它的元素沒有排序。 – Peaceful
df1 = pd.DataFrame(data1,columns = ['key','data'])會給我數據後面的密鑰。 但如果我不指定列,那麼它通過鍵返回數據。 – JOHN