python - 基于条件的函数计算
问题描述
我正在练习和新手在 Python 中创建一个具有条件的函数:
创建一个接受整数输入的函数(例如 m,其中 m 介于 2 到 n 之间,n 是最大行数)。此函数计算最近 m 天的“Sum A”和“Sum B”。前 m 天没有任何价值
原始数据:
V TP A B Sum A Sum B
3509 47.81
4862 48.406667 235353.2133
1810 49.26 89160.6
3824 49.263333 188382.9867
2209 47.386667 104677.1467
4558 45.573333 207723.2533
3832 44.396667 170128.0267
3778 43.75 165287.5
1005 44.64 44863.2
4047 43.76 177096.72
2201 44.383333 97687.71667 655447.7167 824912.6467
2507 45.156667 113207.7633 533302.2667 824912.6467
4392 44.4333 195151.2 444141.6667 1020063.847
3497 43.296667 151408.4433 255758.68 1171472.29
1181 43.07 50865.67 255758.68 1117660.813
1971 42.89 84536.19 255758.68 994473.75
4994 43.563333 217555.2867 473313.9667 824345.7233
2017 44.816667 90395.21667 563709.1833 659058.2233
2823 44.936667 126856.21 645702.1933 659058.2233
2774 45.13 125190.62 770892.8133 481961.5033
继续原始数据
Day
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
到目前为止我所做的尝试是它显示错误KeyError 'A':
curret_period = int(input("enter days: "))
sumA = curret_period * ((df["A"] < df["A"]),'')
sumB = curret_period * ((df["B"] >= df["B"]),'')
print(sumA)
print(sumB)
我想知道有没有更好的方法来创建函数?我还想知道下面是否是我需要的?
def function_name()
print()
m= 10 时的预期结果:
A B Sum A Sum B
0
1 235353.21333333332
2 89160.59999999999
3 188382.98666666663
4 104677.1466666667
5 207723.25333333333
6 170128.02666666667
7 165287.5
8 44863.200000000004
9 177096.72
10 97687.71666666666 655447.7167 824912.6467
11 113207.76333333334 533302.2667 824912.6467
12 195151.2 444141.6667 1020063.847
13 151408.4433333333 255758.68 1171472.29
14 50865.66999999999 255758.68 1117660.813
15 84536.19000000002 255758.68 994473.75
16 217555.28666666665 473313.9667 824345.7233
17 90395.21666666666 563709.1833 659058.2233
18 126856.21 645702.1933 659058.2233
19 125190.61999999998 770892.8133 481961.5033
有什么建议吗?先感谢您。
解决方案
您可以利用df.tail()
获取数据框的最后m
一行,然后简单地获取sum()
每一列。
我们还可以检查是否m
不大于数据帧的长度,但是即使您没有这个,它也只是sum
整个数据帧。
def sumof(df, m):
if m <= len(df.index):
rows = df.tail(m)
print(rows['A'].sum())
print(rows['B'].sum())
else:
print("'m' can not be greater than length of dataframe")
推荐阅读
- ios - 使用 xcode10 时在 iOS9 上崩溃
- python-3.x - 如何使用 curl 将文件发送到 Google Cloud Function?
- c# - bot 框架欢迎消息。如何进行 CardAction?
- mingw - 如何更改 MinGW 中的起始目录?
- c# - 在 .NET Portable Library 项目中使用 async / await
- java - 可调用语句未在 Java 中返回响应
- javascript - 根据给定的键将对象数组转换为对象
- dart - Flutter - 从验证器更新表单状态
- android - 如何在片段中使用 viewpager 和 tablayout?
- javascript - R Shiny - 使用自定义消息处理程序禁用单选按钮组中的单个单选按钮