簡體   English   中英

為什么我會為一組騎行數據得到這個值錯誤,即使它對於不同的騎行非常有效

[英]Why am I getting this valueerror for one set of ride data even though it works perfectly for a different ride

嗨,我得到了這個:

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()

您的索引中確實有重復項

  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

output

    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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM