用先前的单元格代替列中的值
我想将数据框架中的列替换为NAN,然后将NAN替换为上一行的值。这是我目前正在使用的代码:
import pandas as pd
file = ("C:/Users/eestrada/Desktop/Copy of Routing State Reason.xls")
finalfile = ("C:/Users/eestrada/Desktop/Copy of Routing State Reason.csv")
df = pd.read_excel(file)
date = df.iat[1,1]
date = date
date = date[0:9]
#abb = ['Jan *','Feb *','Mar *','Apr *','May *','Jun *','Jul *','Aug *','Sep *','Oct *','Nov *','Dec *']
df = pd.read_csv(finalfile)
df= df.drop([0,1,2,3,4,5,6,7])
df.columns = ['Name','UserID','Reason','PresenceState','Total_Time']
这就是我的数据的样子:
Name UserID Reason PresenceState Total_Time
8 Aguilar, Bertrand 2653 NaN NaN 00:41:10
9 Jun 15 NaN NaN NaN 00:41:10
10 NaN NaN Unavailable - Break Away 00:09:03
11 NaN NaN Unavailable - Lunch Away 00:32:07
12 NaN NaN Work - Outbound Busy 00:00:00
13 Aguilar, Sarah 2546 NaN NaN 00:51:38
14 Jun 15 NaN NaN NaN 00:51:38
15 NaN NaN Unavailable - Break Away 00:21:38
16 NaN NaN Unavailable - Lunch Away 00:30:00
17 Alcala, Jose 2584 NaN NaN 02:28:09
18 Jun 15 NaN NaN NaN 02:28:09
19 NaN NaN Unavailable - Service Out Away 00:00:15
20 NaN NaN Work - IT Issues Busy 02:26:29
21 NaN NaN Work - Outbound Busy 00:01:25
22 Alonso, Eduardo 2648 NaN NaN 00:55:32
23 Jun 15 NaN NaN NaN 00:55:32
24 NaN NaN Unavailable - Break Away 00:23:20
25 NaN NaN Unavailable - Lunch Away 00:32:10
26 NaN NaN Work - 1on1Sessions Busy 00:00:02
27 Andrade, Guillermo 2526 NaN NaN 01:00:49
现在,这是所需的输出:
希望大家都可以帮助我:C
I want to replace values from a column in a dataframe to NaN and then replace Nan to the value from the previous row. This is the code that I'm currently using:
import pandas as pd
file = ("C:/Users/eestrada/Desktop/Copy of Routing State Reason.xls")
finalfile = ("C:/Users/eestrada/Desktop/Copy of Routing State Reason.csv")
df = pd.read_excel(file)
date = df.iat[1,1]
date = date
date = date[0:9]
#abb = ['Jan *','Feb *','Mar *','Apr *','May *','Jun *','Jul *','Aug *','Sep *','Oct *','Nov *','Dec *']
df = pd.read_csv(finalfile)
df= df.drop([0,1,2,3,4,5,6,7])
df.columns = ['Name','UserID','Reason','PresenceState','Total_Time']
And this is how my data looks like:
Name UserID Reason PresenceState Total_Time
8 Aguilar, Bertrand 2653 NaN NaN 00:41:10
9 Jun 15 NaN NaN NaN 00:41:10
10 NaN NaN Unavailable - Break Away 00:09:03
11 NaN NaN Unavailable - Lunch Away 00:32:07
12 NaN NaN Work - Outbound Busy 00:00:00
13 Aguilar, Sarah 2546 NaN NaN 00:51:38
14 Jun 15 NaN NaN NaN 00:51:38
15 NaN NaN Unavailable - Break Away 00:21:38
16 NaN NaN Unavailable - Lunch Away 00:30:00
17 Alcala, Jose 2584 NaN NaN 02:28:09
18 Jun 15 NaN NaN NaN 02:28:09
19 NaN NaN Unavailable - Service Out Away 00:00:15
20 NaN NaN Work - IT Issues Busy 02:26:29
21 NaN NaN Work - Outbound Busy 00:01:25
22 Alonso, Eduardo 2648 NaN NaN 00:55:32
23 Jun 15 NaN NaN NaN 00:55:32
24 NaN NaN Unavailable - Break Away 00:23:20
25 NaN NaN Unavailable - Lunch Away 00:32:10
26 NaN NaN Work - 1on1Sessions Busy 00:00:02
27 Andrade, Guillermo 2526 NaN NaN 01:00:49
Now this is the desired output:
Hope you all can help me :c
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
一种方法:
iiuc,使用
ffill
与groupby.transform
:输出的IIUC, one way using
ffill
withgroupby.transform
:Output: