我試圖計算一個值“i”在 i<0.5 范圍內的次數。我從 csv 檔案中計數。需要明確的是,我只希望將次數附加到字典中。我將發布我的代碼和我得到的結果。我想要的結果是這樣的:(86 是占位符,不是真實的實際數字){'0.0-0.5':[86].....
輸入:
\import pandas as pd
df = pd.read_csv("gen_pop.csv", index_col=0)
new_d = {'0.0-0.5':[],'0.5-1':[],'1-10':[],'10-100':[],'100-450':[]}
for i in df.values:
count=0
for col in df:
if str(i) == "nan":
continue
if (i<0.5).any():
count =1
new_d['0.0-0.5'].append(count)
print (new_d)
輸出:{'0.0-0.5': [0, 32, 0, 0, 32, 0, 0, 32,(...等一千次)], '0.5-1': [], '1 -10':[],'10-100':[],'100-450':[]}
提前致謝!
所以我嘗試計算 i<0.5 的次數是正確的,但它不起作用。需要明確的是,csv 檔案以表格形式包含資料,其中包含 12,000 個名稱和 32 個表示名稱的組織。資料示例: 我的資料
uj5u.com熱心網友回復:
好的,假設您有一個玩具資料框。
>>> pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
A B
0 1 4
1 2 5
2 3 6
您的評論似乎暗示了這樣的事情,您可以在其中將資料分成垃圾箱并進行計數。
>>> pd.cut(df.values.flatten(), bins=[0, 1, 4, 6]).value_counts()
>>> # specific bins are arbitrary etc
(0, 1] 1
(1, 4] 3
(4, 6] 2
dtype: int64
但是您的代碼似乎暗示您要分別為每一行執行剪切操作。您可以通過應用帶有適當引數的 cut 函式來做到這一點,df.apply(lambda r: pd.cut(r, bins=[ arbitrary... bins... here... ]).value_counts()但我并不完全確定您想要什么輸出。要將其轉換為您的代碼所暗示的形式,只需要轉置輸出即可。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/453320.html
上一篇:相當于Flask中的“WhileTrue”回圈:怎么做?
下一篇:函式回圈隨機停止
