大家好,我是皮皮。

一、前言

前几天在Python白银交流群【上海新年人】问了一个Pandas日期数据生成的问题,问题如下:大佬们,有个难度高的新需求,现实生活中也蛮实用的,原始数据和想要的结果是下面这样子,先进先出这样子的表现形式如下:

# yyds干货盘点 # 盘点一个Python自动化办公实战案例的问题_Python入门

当然商品不会只有一种,有办法吗?

下面是他的原始代码:

data = [['铅笔','入','60','3.5','京东'],
         ['钢笔','入','35','5.5','京东'],
         ['钢笔','出','21','10.9','A公司'],
         ['铅笔','出','31','5','B公司'],
         ['铅笔','入','120','3.2','苏宁'],
         ['钢笔','入','5','6','国美'],
         ['铅笔','出','88','4','B公司'],
         ['钢笔','出','10','7','C公司'],
         ['牙膏','入','150','6.5','苏宁'],
         ['牙膏','出','110','7','A公司'],
         ['铅笔','出','20','7','B公司']]
df = pd.DataFrame(data=data,columns=['品名','入/出','数量','单价/元','供应商/购买方'])
df[['数量','单价/元']] = df[['数量','单价/元']].apply(lambda x:x.astype(float))  #数据类型转换
df['日期'] = pd.date_range('2023-11-15',periods=len(df))  #增加日期新列
df = df.take([5,0,1,2,3,4],axis=1)  #调整列的位置

二、实现过程

后来【论草莓如何成为冻干莓】给了一个思路和代码如下:这个很简单的,累计减就行。

# yyds干货盘点 # 盘点一个Python自动化办公实战案例的问题_Python教程_02

这个代码还是有点东西的,粉丝一下子没看懂,【论草莓如何成为冻干莓】给简化了一些:

# yyds干货盘点 # 盘点一个Python自动化办公实战案例的问题_Python基础_03

顺利地解决了粉丝的问题。

# yyds干货盘点 # 盘点一个Python自动化办公实战案例的问题_Python基础_04

如果你也有类似这种数据分析的小问题,欢迎随时来交流群学习交流哦,有问必答!

三、总结

大家好,我是皮皮。这篇文章主要盘点了一个Pandas数据筛选的问题,文中针对该问题,给出了具体的解析和代码实现,帮助粉丝顺利解决了问题。

最后感谢粉丝【上海新年人】提出的问题,感谢【论草莓如何成为冻干莓】给出的思路,感谢【莫生气】、【冯诚】等人参与学习交流。

【提问补充】温馨提示,大家在群里提问的时候。可以注意下面几点:如果涉及到大文件数据,可以数据脱敏后,发点demo数据来(小文件的意思),然后贴点代码(可以复制的那种),记得发报错截图(截全)。代码不多的话,直接发代码文字即可,代码超过50行这样的话,发个.py文件就行。

# yyds干货盘点 # 盘点一个Python自动化办公实战案例的问题_Python教程_05