私は私が読んCSVでデータセットがあります。以下のデータフレームは、[0..8759]次の形式であるPython Pandas - データフレームに複数のインデックスがありますか?
df = pd.read_csv(requestfile, header=[0,1], parse_dates= [0])
:
time output direct diffuse temperature
UTC kW kW/m2 kW/m2 deg C
0 2014-01-01 00:00:00 0.000 0.000 0.000 1.495
1 2014-01-01 01:00:00 0.000 0.000 0.000 1.543
2 2014-01-01 02:00:00 0.000 0.000 0.000 1.517
は今、私はhttps://github.com/renewables-ninja/gseeを使用して物事を行う必要が(gsee.pv.run_plant_model)は、しかし、私は次のエラーが表示されます
File "C:\Data\Solar\gsee-master\gsee\trigon.py", line 183, in aperture_irradiance
sunrise_set_times = sun_rise_set_times(direct.index, coords)
File "C:\Data\Solar\gsee-master\gsee\trigon.py", line 56, in sun_rise_set_times
dtindex = pd.DatetimeIndex(datetime_index.to_series().map(pd.Timestamp.date).unique())
File "C:\Users\XX\Anaconda3\lib\site-packages\pandas\core\series.py", line 2177, in map
new_values = map_f(values, arg)
File "pandas\src\inference.pyx", line 1207, in pandas.lib.map_infer (pandas\lib.c:66124)
TypeError: descriptor 'date' requires a 'datetime.datetime' object but received a 'int'
は、だから私は、障害が私のデフォルトの指標であると仮定ので、私は目を修正しました電子CSV-読ん指標として「時間」列を使用する:
df = pd.read_csv(requestfile, header=[0,1], index_col=0, parse_dates= [0])
time output direct diffuse temperature
UTC kW kW/m2 kW/m2 deg C
2014-01-01 00:00:00 0.000 0.000 0.000 1.495
2014-01-01 01:00:00 0.000 0.000 0.000 1.543
は、今私が得るエラーは以下の通りである:私が正しく理解している場合、私の指標であるため
File "C:\Users\XX\Anaconda3\lib\site-packages\pandas\core\frame.py", line 402, in _init_dict
return _arrays_to_mgr(arrays, data_names, index, columns, dtype=dtype)
File "C:\Users\XX\Anaconda3\lib\site-packages\pandas\core\frame.py", line 5398, in _arrays_to_mgr
index = extract_index(arrays)
File "C:\Users\XX\Anaconda3\lib\site-packages\pandas\core\frame.py", line 5437, in extract_index
raise ValueError('If using all scalar values, you must pass'
ValueError: If using all scalar values, you must pass an index
だから、最初のエラーがあります数字だけでは、[0..8759] INTでは、日時・形式にする必要があるとき、そして私のインデックスは、日時・フォーマットで、
index = extract_index(arrays)
はorginalインデックス[0を持っていないので、私の2番目のエラーです。 .8759]。または私はスカラー値のエラーが間違っていると完全に理解していますか? DataFrameに2つのインデックス、1つの[0..8759]と他の['時間']列を持つことは可能でしょうか?これはどうやってpd.read_csv関数に変換されるのでしょうか?
それは任意のヘルプであれば、私も(私はデータフレームDFを呼び出したときに、いくつかの初心者のミスのために表示されません)DATAFRAMEで次のようにします(しかし、彼らはrun_plant_model機能とで使用されている):
df.global_horizontal = df.direct + df.diffuse
df.diffuse_fraction = df.diffuse/df.global_horizontal
df.diffuse_fraction = df.diffuse_fraction.fillna(0)
EDIT:データフレームに最新の列を正しく追加しました。エラーには何の影響もありませんでした。
ファンクションコール:
gsee.pv.run_plant_model(df, site.coords, angle, azimuth, tracking,
capacity, technology, system_loss,
angles=None, include_raw_data=False)
私は元の質問が悪いだったかもしれないと信じて:
C:\Users\XX\Anaconda3\lib\site-packages\pandas\indexes\base.py:2683: RuntimeWarning: Cannot compare type 'Timestamp' with type 'str', sort order is undefined for incomparable objects
return this.join(other, how=how, return_indexers=return_indexers)
だから私は持っている 'STR' 私は 'タイムスタンプ' を持つべきどこ?
エラーを投げている関数に呼び出しを追加できますか? – ASGM