簡體   English   中英

pandas DataFrame DatetimeIndex 切片錯誤

[英]pandas DataFrame DatetimeIndex slice error

我很好奇為什么我可以給切片賦值,但不能直接打印出來。 以下代碼顯示詳細信息:

import pandas as pd
import numpy as np
from datetime import datetime

dt_start = datetime.strptime("20171010", "%Y%m%d")
dt_end = datetime.strptime("20171020", "%Y%m%d")

df = pd.DataFrame(np.nan, index=pd.date_range(start=dt_start, end=dt_end), columns=['sales', 'account'])

df.loc[:1, 'sales'] = 100 # works well
print(df.loc[:1, 'sales']) # error, why???

錯誤信息:
類型錯誤:無法使用類 'int' 的這些索引器 [1] 對類 'pandas.tseries.index.DatetimeIndex 進行切片索引

為什么我可以賦值但不能打印這個切片?

非常感謝檢查。

我認為首先看起來像錯誤:

df.loc[:1, 'sales'] = 100 

我認為如果需要按位置進行搜索,最好使用iloc - 但也需要get_loc來獲取列sales位置:

df.iloc[:1, df.columns.get_loc('sales')] = 100
print (df)
            sales  account
2017-10-10  100.0      NaN
2017-10-11    NaN      NaN
2017-10-12    NaN      NaN
2017-10-13    NaN      NaN
2017-10-14    NaN      NaN
2017-10-15    NaN      NaN
2017-10-16    NaN      NaN
2017-10-17    NaN      NaN
2017-10-18    NaN      NaN
2017-10-19    NaN      NaN
2017-10-20    NaN      NaN

print (df.iloc[:1, df.columns.get_loc('sales')])
2017-10-10   NaN
Freq: D, Name: sales, dtype: float64

print (df.columns.get_loc('sales'))
0

暫無
暫無

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

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