jss*_*ssm 5 python csv timedelta pandas
我正在尝试读取如下所示的 csv 文件:
col 1 col 2 col 3 ... col N
0 0 days 00:00:16 0 days 00:00:07 0 days 00:01:02 NaN
.
.
.
15000 0 days 01:40:00 NaN NaN ... NaN
Run Code Online (Sandbox Code Playgroud)
我尝试过的:
df = pd.read_csv('file.csv', sep=',', index_col=0, dtype=object)
df = df.applymap(lambda x: pd.to_timedelta(x))
Run Code Online (Sandbox Code Playgroud)
但由于我有很多列和行,所以速度有点慢。有更合适的方法来做到这一点吗?
中的parse_dates或参数不支持 timedelta 对象。这里有几个替代方案。dtyperead_csv
apply和pd.to_timedeltadf = df.apply(pd.to_timedelta, errors='coerce')
Run Code Online (Sandbox Code Playgroud)
或者,
for c in df.columns:
df[c] = pd.to_timedelta(df[c], errors='coerce')
Run Code Online (Sandbox Code Playgroud)
pd.read_csv和converters=论点converters另一种选择是在加载时传递参数:
f = {i : pd.to_timedelta for i in range(N)} # you can access columns by index
df = pd.read_csv('file.csv', sep=',', index_col=0, converters=f)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
545 次 |
| 最近记录: |