我从205MB csv(大约110万行15列)创建了一个熊猫数据框。它包含一个名为starttime
的列,它是dtype object
(它更精确地是一个字符串)。格式如下:7/1/2015 00:00:03
。熊猫组由单个列中的多个值组成
我想从这个熊猫数据框中创建两个新的数据框。一个应该包含与周末日期相对应的所有行,另一个应该包含与周日日期对应的所有行。
周末日期为:
weekends = ['7/4/2015', '7/5/2015', '7/11/2015', '7/12/2015',
'7/18/2015', '7/19/2015', '7/25/2015', '7,26/2015']
我试图将字符串转换成datetime(pd.to_datetime
)希望这将使该值容易解析,但是当我做这么久,我最终重新启动挂起内核几次。
然后我决定使用df["date"], df["time"] = zip(*df['starttime'].str.split(' ').tolist())
在原始数据框(一个用于日期,一个用于时间)中创建两个新列。接下来,我想我会使用布尔测试来标记周末记录(根据新的date
字段)为True
和所有其他人False
并创建另一列,保存这些值,然后我可以按True
和False
。
例如, test1 = bikes['date'] == '7/1/2015'
回报True
对所有2015年7月1日值,但我无法弄清楚如何遍历所有项目中weekends
,使我得到True
所有周末的日期。我想这和Python的爆发(再次挂断):
for i in weekends:
for k in df['date']:
test2 = df['date'] == i
我想感谢所有帮助(既我的逻辑和我的代码)。
你应该能够解析该字符串,而因此,如果您通过任一列名称或序值'read_csv'那就在它读成一个日期在CSV阅读好:'pd.read_csv(file,parse_dates = ['starttime'])'应该可以工作,那么你可以直接调用'df ['starttime']。dt.dayofweek',所有的周末都是那些值为'[5 ,6]' – EdChum
@EdChum感谢您的建议,但我收到了'只能使用.dt访问器和datetimelike values'错误。我认为这是因为'starttime'是一个字符串。 – dstar
您尚未说明您是否已尝试像使用'parse_dates'解析字符串,您需要在从csv读取作为后处理步骤的解析过程中出于某种原因导致您的计算机冻结这是不应该 – EdChum