我需要計算串列中浮動元素的頻率。將它們轉換為 int 我不能,因為我需要操縱浮點值,而不是 int。
我在下面的代碼中嘗試:
values = [21.963, 23.4131, 23.7639, 24.3934, 24.5237, 25.2829, 25.394]
df = pd.Series(values).value_counts().sort_index().reset_index().reset_index(drop=True)
df.columns = ['Element', 'Frequency']
frequency = (df['Frequency'].values).tolist()
但是我想要兩個單獨的串列(不是資料框):
- 浮動元素串列
- 給定浮動元素的頻率串列
預期輸出:
值 = [21.963, 23.4131, 23.7639, 24.3934, 24.5237, 25.2829, 25.394]
頻率 = [1, 1, 1, 1, 1, 1, 1]
uj5u.com熱心網友回復:
from collections import Counter
Counter(values)
Output:
Counter({21.963: 1,
23.4131: 1,
23.7639: 1,
24.3934: 1,
24.5237: 1,
25.2829: 1,
25.394: 1})
list2 = list(Counter(values).values())
list2
Output:
[1, 1, 1, 1, 1, 1, 1]
uj5u.com熱心網友回復:
以下是從串列中獲取元素頻率的不同方法
麻木的
import numpy as np
values = [21.963, 23.4131, 23.7639, 24.3934, 24.5237, 25.2829, 25.394]
values, freq = np.unique(np.array(values), return_counts=True)
print(values)
print(freq)
# Output
# [21.963 23.4131 23.7639 24.3934 24.5237 25.2829 25.394 ]
# [1 1 1 1 1 1 1]
熊貓
import pandas as pd
values = [21.963, 23.4131, 23.7639, 24.3934, 24.5237, 25.2829, 25.394]
freq = pd.DataFrame(values).value_counts().values
print(values)
print(freq)
# Output
# [21.963 23.4131 23.7639 24.3934 24.5237 25.2829 25.394 ]
# [1 1 1 1 1 1 1]
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/526497.html
