gpt4 book ai didi

python - Pandas Series 用于计算另一个 Pandas Series 中的值

转载 作者:行者123 更新时间:2023-12-01 09:22:08 29 4
gpt4 key购买 nike

我在 Pandas (s1) 中创建了一个系列,用于根据原始 DataFrame 中的列 ('d1') 计算这些固定数字 (1-14) 的实例数。我想要的显示在这里(时报);

s1    Last   Times  
1 2 72
2 34 59
3 15 48
4 0 30
5 13 39
6 4 28
7 6 34
8 3 31
9 17 17
10 32 15
11 1 15
12 102 14
13 9 13
14 51 7

csv 文件示例在这里;

   date d1  d2  d3  d4  d5  d6  d7
17/12/22 9 10 12 15 24 32 33
17/12/22 3 9 13 17 27 32 46
17/12/22 4 12 13 19 25 26 29
17/12/22 5 12 14 30 35 40 49
17/12/22 1 4 8 11 15 38 44
17/12/22 8 16 17 29 34 37 42
17/12/22 3 9 16 20 28 33 43
17/12/22 9 12 14 19 29 44 46
17/12/22 1 15 19 27 28 37 38
17/12/29 22 23 26 35 37 39 47
18/01/05 1 3 13 15 28 36 49
18/01/12 1 8 16 19 26 34 41
18/01/19 9 18 25 30 39 40 43

运行代码不会产生任何错误,但我不知道如何从 1 循环到 14 并计算数据集中该数字出现的次数 (d1)。我的代码如图所示。

import pandas as pd

pd.options.display.max_rows = 999

df = pd.read_csv("lmax_full.csv", index_col=False)

df.drop('date', axis=1, inplace=True) # count the times drawn under 'd1'
count_dA = df.d1.value_counts()
print(count_dA.head()) # print the count of 'd1'
s1 = pd.Series(range(1, 15), index=None)
print(s1)


# using Series s1 from 1-14 apply a loop count across all rows on 'd1'
# to get counts of each number in s1
def count_d1(count):
for i in s1:
count = s1.apply(pd.count_dA.value_counts)
i += 1
return count

print(count_dA)

最佳答案

据我了解,您可以根据示例数据遵循以下方法:

ser = pd.concat([df['d1'].value_counts(), pd.Series([np.nan]*14, index=range(1,15), name='d1')]).sort_index()
ser = ser[~ser.index.duplicated()].fillna(0).astype(int)[:14]
s1 = pd.DataFrame({
'Times':ser
})

输出:

Times
1 4
2 0
3 0
4 1
5 0
6 0
7 0
8 1
9 3
10 0
11 0
12 0
13 0
14 0

关于python - Pandas Series 用于计算另一个 Pandas Series 中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50731709/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com