为什么我在一组行驶数据中得到这个值错误,即使它在不同的行驶中工作得很好

2024-06-09 22:23:10 发布

您现在位置:Python中文网/ 问答频道 /正文

你好,我收到了这个:

ValueError: cannot reindex a non-unique index with a method or limit

运行这些线路时:

df_nemo_all = pd.read_csv(
    "https://cdn.touringplans.com/datasets/finding_nemo_subs.csv", usecols=['date','datetime','SPOSTMIN'], 
    parse_dates=['date', 'datetime']
)
df_nemo_all['ride'] = 'space'
df_nemo_all['open'] = ~((df_space_all['SPOSTMIN'] == -999))

df_nemo = df_nemo_all.set_index('datetime').sort_index()
df_nemo = df_nemo.loc['2017-01-01 06:00':'2017-02-01 00:00']
df_nemo = df_nemo.resample('15Min').ffill()

当它适用于不同的骑乘时,例如:

df_space_all = pd.read_csv(
    "https://cdn.touringplans.com/datasets/space_mountain_dlr.csv", usecols=['date','datetime','SPOSTMIN'], 
    parse_dates=['date', 'datetime']
)
df_space_all['ride'] = 'space'
df_space_all['open'] = ~((df_space_all['SPOSTMIN'] == -999))

df_space = df_space_all.set_index('datetime').sort_index()
df_space = df_space.loc['2017-01-01 06:00':'2017-02-01 00:00']
df_space = df_space.resample('15Min').ffill()

Tags: csvhttpscomdfreaddatetimedateindex
1条回答
网友
1楼 · 发布于 2024-06-09 22:23:10

索引中确实有重复项

  1. 2017-01-13 09:31:05有两行
  2. 我已经排除了这一点,然后它的工作
df_space_all = pd.read_csv(
    "https://cdn.touringplans.com/datasets/space_mountain_dlr.csv", usecols=['date','datetime','SPOSTMIN'], 
    parse_dates=['date', 'datetime']
)
df_space_all['ride'] = 'space'
df_space_all['open'] = ~((df_space_all['SPOSTMIN'] == -999))

df_space = df_space_all.set_index('datetime').sort_index()
df_space = df_space.loc['2017-01-01 06:00':'2017-02-01 00:00']
df_space = df_space.resample('15Min').ffill()

df_nemo_all = pd.read_csv(
    "https://cdn.touringplans.com/datasets/finding_nemo_subs.csv", usecols=['date','datetime','SPOSTMIN'], 
    parse_dates=['date', 'datetime']
)
df_nemo_all['ride'] = 'space'
df_nemo_all['open'] = ~((df_space_all['SPOSTMIN'] == -999))

df_nemo = df_nemo_all.set_index('datetime').sort_index()
df_nemo = df_nemo.loc['2017-01-01 06:00':'2017-02-01 00:00']
c = df_nemo.groupby(level=0).transform("count")
c[c["date"]>1].index.tolist()
df_nemo = df_nemo[~df_nemo.index.isin(c[c["date"]>1].index.tolist())].resample('15Min').ffill()
df_nemo

输出

    date    SPOSTMIN    ride    open
datetime                
2017-01-01 09:00:00 NaT NaN NaN NaN
2017-01-01 09:15:00 2017-01-01  5.0 space   True
2017-01-01 09:30:00 2017-01-01  5.0 space   True
2017-01-01 09:45:00 2017-01-01  5.0 space   True
2017-01-01 10:00:00 2017-01-01  5.0 space   True
... ... ... ... ...
2017-01-31 18:45:00 2017-01-31  20.0    space   True
2017-01-31 19:00:00 2017-01-31  20.0    space   True
2017-01-31 19:15:00 2017-01-31  20.0    space   True
2017-01-31 19:30:00 2017-01-31  10.0    space   True
2017-01-31 19:45:00 2017-01-31  10.0    space   True

相关问题 更多 >