【发布时间】:2022-10-04 17:17:21
【问题描述】:
我正在使用熊猫,我有一列出勤时间戳数据(日期)。 我想将同一天的值拆分为 (InTime) 和 (OutTime) 列。
df = df[['Date']]
Date
Thu 1/09 9:10 AM
Thu 1/09 6:10 PM
Fri 2/09 9:04 AM
Fri 2/09 6:02 PM
我正在努力实现以下结果。
In Time OutTime
Thu 1/09 9:10 AM Thu 1/09 6:10 PM
Fri 2/09 9:04 AM Fri 2/09 6:02 PM
谢谢。
编辑
谢谢您的帮助。问题是数据没有应有的整洁。缺少 In-Time/Out-Time 或几乎重复的记录。 + 我是一个基本的 python 用户而且我什至无法理解根据我的要求修改它的代码。
我要求查看完整的场景以及到目前为止我为达到预期结果所做的尝试。
这是一个考勤机数据,用户要么忘记标记出勤,要么机器创建了重复条目以获得更长的拇指印象。因此,所提供的代码在发现任何重复或缺失记录的任何地方都会混淆 AM 和 PM 列。
示例数据如下所示
User Date
11 Thu 1/09 9:10 AM
3 Thu 1/09 9:10 AM
4 Thu 1/09 9:10 AM
2 Thu 1/09 9:23 AM
5 Thu 1/09 9:39 AM
... ... ...
12 Fri 30/09 5:55 PM
5 Fri 30/09 6:01 PM
6 Fri 30/09 6:04 PM
11 Fri 30/09 6:09 PM
我正在尝试为 In 和 Out 时间戳位于不同列中的每个用户创建多个 .csv 文件包括非连续天数的空记录因此可以将其粘贴到已经创建的 excel 模板中。
df = pd.read_csv('input.csv', encoding="utf-8", sep=',')
df = df[["User", "Date"]]
dataframe = pd.DataFrame(df,
columns=['User', 'Date'])
users = {
'falcon': 2,
'charlie': 3,
}
for username, ID in users.items():
df = dataframe.loc[dataframe['User'] == ID]
df = df[['Date']]
df.to_csv(username + ".csv", encoding="utf-8", sep=',', header=False, index=False)
结果
Thu 1/09 9:10 AM
Thu 1/09 6:11 PM
Fri 2/09 9:18 AM //Missing PM
Sat 3/09 10:44 AM
Sat 3/09 6:00 PM
Mon 5/09 9:22 AM //Missing PM
Tue 6/09 9:09 AM
Tue 6/09 6:25 PM
Wed 7/09 9:18 AM
Wed 7/09 6:33 PM
我试着拆分这些日期,以便带有 AM / PM 的条目在其尊重的列中分开(包括缺失日期的空记录).
【问题讨论】:
标签: python pandas csv date split