У меня 2 очень простые проблемы с добавлением Pandas, надеюсь, вы мне поможете.
Мой первый вопрос:
Допустим, у меня есть следующие два кадра данных: a_df
и b_df
a = [[1,1,1,1],[0,0,0,0],[1,1,0,0]]
a_df = pd.DataFrame(a)
a_df =
0 1 2 3
0 1 1 1 1
1 0 0 0 0
2 1 1 0 0
b = [1,1,1,1]
b_df = pd.DataFrame(b).T
b_df=
0 1 2 3
0 1 1 1 1
Я хотел бы добавить b_df
к a_df
, чтобы получить c_df
таким образом, чтобы мой ожидаемый результат был следующим:
c_df =
0 1 2 3
0 2 2 2 2
1 1 1 1 1
2 2 2 1 1
Текущий метод, который я использую, повторяет b_df
до того же размера a_df
и выполняет сложение , показано ниже. Однако этот метод не очень эффективен, если мой a_df
очень очень большой.
a = [[1,1,1,1],[0,0,0,0],[1,1,0,0]]
a_df = pd.DataFrame(a)
b = [1,1,1,1]
b_df = pd.DataFrame(b).T
b_df = pd.concat([b_df]*len(a_df)).reset_index(drop=True)
c_df = a_df + b_df
Есть ли другие способы добавить b_df
(без его репликации) к a_df
, чтобы получить то, что я хочу, чтобы c_df
было?
Мой второй вопрос очень похож на мой первый:
Допустим, у меня есть d_df
и e_df
следующим образом:
d = [1,1,1,1]
d_df = pd.DataFrame(d)
d_df=
0
0 1
1 1
2 1
3 1
e = [1]
e_df = pd.DataFrame(e)
e_df=
0
0 1
Я хочу добавить e_df
к d_df
так, чтобы Я получил бы следующий результат:
0
0 2
1 2
2 2
3 2
Опять текущий ток, который я копирую e_df
, используя следующий метод (такой же, как вопрос 1) перед добавлением с d_df
d = [1,1,1,1]
d_df = pd.DataFrame(d)
e = [1]
e_df = pd.DataFrame(e)
e_df = pd.concat([e_df]*len(d_df)).reset_index(drop=True)
f_df = d_df + e_df
Есть ли способ без репликации e_df
?
Пожалуйста, сообщите и помогите мне. Большое спасибо в продвинутом
Томми