我有一本看起來像這樣的字典,其中的值是相同數量索引的串列。它是構建一個熊貓資料框。我想獲取這些串列中每個索引的最大值的鍵名。(即這些串列的第一個索引為 0.00023478,第四個索引為 0.23849287)。我嘗試將其轉換為熊貓資料幀,然后找到最大索引,但這需要太多時間,因為我處理的資料太多。我需要找到特定索引的最大值,然后在將字典轉換為資料幀之前回傳鍵。
{'DT': [0, 0, 0, 0, 0, 0, 0, 0], 'NN': [0.00023478, 0, 0, 0, 0, 0, 0, 0],
'POS': [0, 0, 0, 0.000192837, 0, 0, 0, 0], 'MD': [0, 0, 0, 0, 0, 0, 0, 0],
'VB': [0, 0, 0, 0, 0, 0, 0, 0], 'VBN': [0, 0, 0, 0, 0, 0, 0, 0],
'IN': [0.0000028945, 0, 0, 0, 0, 0, 0, 0], 'JJ': [0, 0, 0, 0, 0, 0, 0, 0],
'NNS': [0, 0, 0, 0, 0, 0, 0, 0], 'CC': [0, 0, 0, 0.23849287, 0, 0, 0, 0],
'RBS': [0, 0, 0, 0, 0, 0, 0, 0], 'NNP': [0, 0, 0, 0, 0, 0, 0, 0],
'VBZ': [0, 0, 0, 0, 0, 0, 0, 0], 'TO': [0, 0, 0, 0, 0, 0, 0, 0]}
for i in range(len(test)): # how many sentence
list1 = [[0 for x in range(len(test[i]))] for y in range(len(pos_list))]
q = dict(zip(pos_list, list1))
for j in range(len(test[i])):
uj5u.com熱心網友回復:
使用maxwithdict.get作為鍵:
max(data, key=data.get)
或與DataFrame.idxmax:
df.idxmax(1)
uj5u.com熱心網友回復:
將您的 dict 轉換為 a DataFrame:
df = pd.DataFrame(d)
print(df)
# Output:
DT NN POS MD VB VBN IN JJ NNS CC RBS NNP VBZ TO
0 0 0.000235 0.000000 0 0 0 0.000003 0 0 0.000000 0 0 0 0
1 0 0.000000 0.000000 0 0 0 0.000000 0 0 0.000000 0 0 0 0
2 0 0.000000 0.000000 0 0 0 0.000000 0 0 0.000000 0 0 0 0
3 0 0.000000 0.000193 0 0 0 0.000000 0 0 0.238493 0 0 0 0
4 0 0.000000 0.000000 0 0 0 0.000000 0 0 0.000000 0 0 0 0
5 0 0.000000 0.000000 0 0 0 0.000000 0 0 0.000000 0 0 0 0
6 0 0.000000 0.000000 0 0 0 0.000000 0 0 0.000000 0 0 0 0
7 0 0.000000 0.000000 0 0 0 0.000000 0 0 0.000000 0 0 0 0
然后max在列軸上使用:
>>> df.max(axis='columns')
0 0.000235
1 0.000000
2 0.000000
3 0.238493
4 0.000000
5 0.000000
6 0.000000
7 0.000000
dtype: float64
這與通過以下方式了解索引鍵相同idxmax:
>>> df.idxmax(axis='columns')
0 NN
1 DT
2 DT
3 CC
4 DT
5 DT
6 DT
7 DT
dtype: object
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/313027.html
下一篇:在列中連續相同值后替換值
