python - 熊猫更正上一行
问题描述
我有这样的数据框。
import pandas as pd
#create dataframe
df= pd.DataFrame({"Date":range(0,22),
"Country":["USA","USA","USA","USA","USA","USA","USA","USA","USA","USA","USA","USA","USA","USA","USA","USA","USA","USA","USA","USA","USA","USA",],
"Number":[0,0,0,0,0,1,1,3,5,6,4,6,7,8,7,10,25,50,75,60,45,100]
"Number is Corrected":[0,0,0,0,0,1,1,3,5,6,6,6,7,7,7,10,25,50,50,60,60,100]})
但是这个数据框有问题。有些数字是错误的。
前一个数字必须小于下一个数字(6, 4 ,6,,7, 8 ,7...50,75, 60 , 45 ,100)
我不使用df.sort
,因为它不是关于排序,而是关于更正。
编辑:我在“数字已更正”列中添加了更正的数字。
解决方案
从你的“数字更正”列表中猜测,你可能会使用这个:
import pandas as pd
#create dataframe
df= pd.DataFrame({"Date":range(0,22),
"Country":["USA","USA","USA","USA","USA","USA","USA","USA","USA","USA","USA","USA","USA","USA","USA","USA","USA","USA","USA","USA","USA","USA",],
"Number":[0,0,0,0,0,1,1,3,5,6,4,6,7,8,7,10,25,50,75,60,45,100]})
# "Number is Corrected":[0,0,0,0,0,1,1,3,5,6,6,6,7,7,7,10,25,50,50,60,60,100]})
def correction():
df['Number is Corrected'] = df['Number']
cache = 0
for num, content in enumerate(df['Number is Corrected'], start=0):
if(df['Number is Corrected'][num] < cache):
df['Number is Corrected'][num] = cache
else:
cache = df['Number is Corrected'][num]
print(df)
if __name__ == "__main__":
correction()
但有一些不一致之处,比如你和耶斯瑞尔的谈话。事件。你需要更新代码的逻辑,如果它变得更清楚,你想要什么输出。祝你好运。
推荐阅读
- python-3.x - Nix openai python开发环境构建失败
- c# - C#编组期间的字节序列问题
- python - 在 GitHub 中获取组织的所有(超过 100 个)存储库
- istio - Istio 在为异常值检测添加配置时停止负载平衡
- angular - Kendo Ui Grid 与 Angular 中的故事书
- c - 如何在两个不同的地址上调用 connect() 函数并等待选择以在 c 中找到快速返回的地址
- flutter - 如何在flutter中从父小部件调用子小部件的initState()方法
- java - Spring JPA 数据:查询 ElementCollection
- java - ES - 将旧版 ElasticSearch 从 Rest 转换为高级客户端
- mysql - 我的代码有什么问题?1064 检查与您的 MariaDB 服务器版本相对应的手册,以获取正确的语法,以便在 '' 行附近使用