kwa*_*122 20 python datetime pandas
我有一个13列和55,000行的数据框我试图将其中5行转换为datetime,现在他们返回类型'object'我需要转换这些数据用于机器学习我知道如果我这样做
data['birth_date'] = pd.to_datetime(data[birth_date], errors ='coerce')
Run Code Online (Sandbox Code Playgroud)
它会返回一个datetime列,但是我也想为其他4列做这个,是否有一行可以写入来调用所有这些列?我不认为我可以索引
data[:,7:12]
Run Code Online (Sandbox Code Playgroud)
谢谢!
Ted*_*rou 33
您可以使用apply迭代遍历每列pd.to_datetime
data.iloc[:, 7:12] = data.iloc[:, 7:12].apply(pd.to_datetime, errors='coerce')
Run Code Online (Sandbox Code Playgroud)
小智 14
my_df[['column1','column2']] =
my_df[['column1','column2']].apply(pd.to_datetime, format='%Y-%m-%d %H:%M:%S.%f')
Run Code Online (Sandbox Code Playgroud)
注意:当然,可以根据需要更改格式。
Ser*_*Dev 11
如果性能是一个问题,我建议使用以下函数将这些列转换为date_time:
def lookup(s):
"""
This is an extremely fast approach to datetime parsing.
For large data, the same dates are often repeated. Rather than
re-parse these, we store all unique dates, parse them, and
use a lookup to convert all dates.
"""
dates = {date:pd.to_datetime(date) for date in s.unique()}
return s.apply(lambda v: dates[v])
to_datetime: 5799 ms
dateutil: 5162 ms
strptime: 1651 ms
manual: 242 ms
lookup: 32 ms
Run Code Online (Sandbox Code Playgroud)
资料来源:https: //github.com/sanand0/benchmarks/tree/master/date-parse
smi*_*hra 10
如果你想在加载时转换,你可以做这样的事情
date_columns = ['c1','c2', 'c3', 'c4', 'c5']
data = pd.read_csv('file_to_read.csv', parse_dates=date_columns)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20947 次 |
| 最近记录: |