Слияние DataFrames, вызывающее ошибку Int Value - PullRequest
1 голос
/ 03 июля 2019

Я прошу прощения, потому что я новичок в программировании, Python и Pandas.Я пытаюсь объединить пять кадров данных в шагах на основе индексов даты и времени и с использованием внешнего соединения.Данные представляют собой данные станции измерения уровня воды, которые я прикрепил по следующей ссылке: https://drive.google.com/open?id=15t7wkU0Sl17WgIS6CAgJpkWONdppdhvH.Данные поступают из различных канадских и американских систем станций измерения уровня воды и все они довольно схожи, за исключением того, что американские данные в линии должны быть сведены к исходной точке путем простого вычитания высоты станции.Я добавил американские станции в их собственный модуль для обработки.Объединение работает нормально, за исключением случаев объединения обработанных американских данных, которые выдают следующую ошибку:

ValueError: can not merge DataFrame with instance of type <type 'int'>

Может кто-нибудь дать мне некоторое представление об этой ошибке?

Я искал на фреймах данных целочисленные значения и пытался преобразовать фрейм данных в строку или фрейм данных, но все еще не смог слиться с ними.

def readNOAA ():

noaaDFs = {}

filenames = glob.glob(r"C:\Users\Andrew\Documents\CHS\SeasonalGaugeAnalysis\Input\CO-OPS_*_wl.csv")

dataframes = [pd.read_csv(filename) for filename in filenames]


for df, filename in zip(dataframes, filenames):
    df['filename'] = os.path.basename(filename)
    df['Station ID'] = df['filename'].str[7:14]
    del df['filename']

combined_df = pd.concat(dataframes, ignore_index=True)

df = pd.DataFrame.from_records(combined_df)

df['Date Time (UTC)'] = pd.to_datetime(df['Date'] + ' ' + df['Time (GMT)'])

#df['Date Time (UTC)'] = df['Date Time (UTC)'].tz_localize('utc') 

df.set_index('Date Time (UTC)', inplace=True)
df.index = df.index.to_datetime().tz_localize('utc')

df['WL'] = df['Preliminary (m)'].where(df['Verified (m)'].isnull(), df['Preliminary (m)'])
df['WL'] = df['WL'].replace({'-': np.nan})
df.drop(['Date', 'Time (GMT)', 'Predicted (m)', 'Preliminary (m)', 'Verified (m)'], axis=1, inplace=True)



Station3 = df[df['Station ID'].str.match('9052030')] #Oswego, NY
#Station3['Temp Station ID'] = '13771'
Station3['WL'] = Station3['WL'].astype(float) - 74.2
Station3.rename(columns={'WL':'9052030'}, inplace=True)
del Station3['Station ID']
noaaDFs["9052030"]=9052030

hydrometDF = readHydromet()
pcwlDF = readPCWL()
noaaDF = readNOAA()

# Create 3 minute time series to merge station data to so data gaps can be identified
idx = pd.date_range('06-21-2019 20:00:00', periods=25000, freq='3 min')
ts = pd.Series(range(len(idx)), index=idx)
cts = ts.to_frame()
cts.index = cts.index.to_datetime().tz_localize('utc')
cts.drop(0, axis=1, inplace=True)

final13771 = pd.merge(hydrometDF["Station11985"], pcwlDF["station13988"], how='outer', left_index=True,right_index=True)
final13771 = pd.merge(final13771, pcwlDF["station13590"], how='outer', left_index=True,right_index=True)
final13771 = pd.merge(final13771, pcwlDF["station14400"], how='outer', left_index=True,right_index=True)
final13771 = pd.merge(final13771, noaaDF["9052030"], how='outer', left_index=True,right_index=True)
final13771 = pd.merge(final13771, cts, how='outer', left_index=True,right_index=True)
final13771.to_excel("13771.xlsx")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...