Вы можете отличать столбцы, если разные типы (datetime и timestamp или str), и использовать to_datetime:
df.loc[:,'Date'] = pd.to_datetime(df.Date.astype(str)+' '+df.Time.astype(str))
Результат:
0 2013-01-06 23:00:00
1 2013-02-06 01:00:00
2 2013-02-06 21:00:00
3 2013-02-06 22:00:00
4 2013-02-06 23:00:00
5 2013-03-06 01:00:00
6 2013-03-06 21:00:00
7 2013-03-06 22:00:00
8 2013-03-06 23:00:00
9 2013-04-06 01:00:00
Лучший,
Вы можете вызывать это несколько раз, поскольку это асинхронный обратный вызов с использованием модификации Square
public void Prepare_Review_data() {
try {
if (token != null) {
if (isConnected()) try {
loading = ProgressHUD.show(getContext(), "Loading Reviews", true, false, Heizolscout_Reviews.this);
Call<JsonElement> call = apiService.Heizolscout_Reviews("Bearer " + token.getAccessToken());
call.enqueue(new Callback<JsonElement>() {
@Override
public void onResponse(Call<JsonElement> call, Response<JsonElement> response) {
Log.d("History Information", response.toString());
loading.dismiss();
if (response.code() == 401) {
Fragment frag = new Heizolscout_Login();
if (frag != null) {
FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
FragmentTransaction ft = fragmentManager.beginTransaction();
ft.replace(R.id.sacreenarea, frag);
ft.commit();
}
} else if (response.code() == 200) {
try {
Gson gson = new Gson();
Type listType = new TypeToken<List<Review_Model>>(){}.getType();
ArrayList<Review_Model>noti = gson.fromJson(response.body(), listType);
Log.d("Notification success",Review_models.size()+"");
if (noti.size()>0){
for (Review_Model n:noti){
Review_models.add(n);
}
Review_Adapter.notifyDataSetChanged();
}else {
Toast.makeText(getActivity(),getString(R.string.review_no_list_string), Toast.LENGTH_LONG).show();
}
Review_Adapter.notifyDataSetChanged();
} catch (Exception e) {
Log.d("Error Line Number", Log.getStackTraceString(e));
}
try {
Log.d("History error", response.body().getAsJsonObject().get("error").toString());
if (!response.body().getAsJsonObject().get("error").isJsonNull()) {
Show_Alert(getString(R.string.open_email), response.body().getAsJsonObject().get("error").toString(), getString(R.string.ok), getString(R.string.normal));
}
} catch (Exception e) {
Log.d("Error Line Number", Log.getStackTraceString(e));
}
} else if (response.code() == 422) {
Show_Alert(getString(R.string.invalid_tittle), getString(R.string.invalid_tittle_details), getString(R.string.ok), getString(R.string.normal));
} else {
Show_Alert(getString(R.string.error_tittle), getString(R.string.error_tittle_details), getString(R.string.ok), getString(R.string.normal));
}
}
@Override
public void onFailure(Call<JsonElement> call, Throwable t) {
// Log error here since request failed
Log.e("Error", t.toString());
Show_Alert(getString(R.string.error_tittle), getString(R.string.error_tittle_details), getString(R.string.ok), getString(R.string.normal));
loading.dismiss();
}
});
} catch (Exception e) {
loading.dismiss();
Log.d("Error Line Number", Log.getStackTraceString(e));
}
else {
Show_Alert(getString(R.string.internet_tittle), getString(R.string.internet_details), getString(R.string.ok), getString(R.string.nointernet));
}
} else {
Fragment frag = new Heizolscout_Login();
if (frag != null) {
FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
FragmentTransaction ft = fragmentManager.beginTransaction();
ft.replace(R.id.sacreenarea, frag);
ft.commit();
}
}
} catch (Exception e) {
Log.d("Error Line Number", Log.getStackTraceString(e));
}
}
Один из способов сделать это - использовать Observable.zip()
В вашем случае это будет примерно так:
Observable.zip( request1, request2.doOnError(//show error here),
BiFunction<response1,response2, combinedResponses>{response1, response2
-> new CombinedResponses(response1, response2)}).subscribe(new Observer{...})
Если вам нужна дополнительная информация, вы можете всегда изучайте документацию