This repository was archived by the owner on Apr 1, 2026. It is now read-only.
File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -1198,20 +1198,17 @@ def dot(self, other):
11981198
11991199 # At this point other must be a DataFrame
12001200 if len (other .columns .names ) == 1 :
1201- # Single level columns in other
1202- na_df = other .isna ().any ()
1203- mul_df = Series (
1204- [(self * other [col ]).sum () for col in other .columns ],
1205- index = other .columns ,
1206- name = self .name ,
1207- session = self ._session ,
1208- )
1209- result = mul_df .mask (na_df )
1201+ # Process single level columns in other
1202+ # Let's leverage the DataFrame.dot
1203+ na_mask = other .isna ().any ()
1204+ self_as_row = self .to_frame ().T
1205+ frame_dot_result_as_row = self_as_row .dot (other )
1206+ frame_dot_result_as_col = frame_dot_result_as_row .T
1207+ series_dot_result = frame_dot_result_as_col [self .name ]
1208+ result = series_dot_result .mask (na_mask )
12101209 else :
1211- # Multi level columns in other
1212- # TODO(b/313747368): Remove this once DataFrame.any() honors
1213- # multi-level index, as the logic in the if clause should generalize
1214- # for multi-level columns in other
1210+ # TODO: Remove this special code path after DataFrame.dot supports
1211+ # multi-level columns.
12151212 result = Series (
12161213 [
12171214 pandas .NA if other [col ].isna ().any () else (self * other [col ]).sum ()
You can’t perform that action at this time.
0 commit comments