我有一个 CSV,我将其读入数据框以删除某些列并进行一些操作。一些示例行是:20 2/5/1954 13:55 0.5 1821 2/5/1954 14:35 0.5 18.222 2/5/1954 16:35 0.5 18.5我想删除日期时间中的时间,例如,我得到的2/5/1954不是2/5/1954 13:55.我写了这个脚本:import pandas as pdfrom datetime import datetime as dtdf = pd.read_csv('habsos_20200310.csv', sep=',', error_bad_lines=False, index_col=False, dtype='unicode')pd.set_option('display.max_rows', None)# Get only the columns we care aboutdfSub = df[['sample_date','sample_depth','water_temp']]# Remove the NaN valuesdfClean = dfSub.dropna()# Select 0.5 depth measurements onlydfClean2 = dfClean.loc[df['sample_depth'] == '0.5']print(dfClean2)这给了我: sample_date sample_depth water_temp20 2/5/1954 13:55 0.5 1821 2/5/1954 14:35 0.5 18.222 2/5/1954 16:35 0.5 18.523 2/5/1954 16:52 0.5 18.524 2/5/1954 17:10 0.5 18.625 2/5/1954 17:25 0.5 18.826 2/5/1954 17:43 0.5 19我试图将这些行添加到我的脚本中以转换该sample_date列:new_df = dfClean2['sample_date'].str.split()[0]print(new_df)
1 回答
Helenr
TA贡献1780条经验 获得超4个赞
评论已经建议您使用expand=True
. 另一种选择是
dfClean2.sample_date = dfClean2.sample_date.str.split(' ').str.get(0)
但是,pandas 为 dtype 实现了许多方法datetime
。parse_dates=True
我建议您传递参数.read_csv()
(使用 read_csv 处理日期时间)并.dt
在该列上使用系列访问器。
dfClean2.sample_date = dfClean2.sample_date.dt.date
添加回答
举报
0/150
提交
取消