Skip to content

Commit be09616

Browse files
committed
temp files
1 parent bc805fd commit be09616

File tree

2 files changed

+112
-0
lines changed

2 files changed

+112
-0
lines changed

test.py

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
# mypy: ignore-errors
2+
import numpy as np
3+
4+
import pandas as pd
5+
import pandas._testing as tm
6+
7+
8+
def print_side_by_side(df1, df2):
9+
# Convert to string and split into lines
10+
df1_str = df1.to_string(index=False).split("\n")
11+
df2_str = df2.to_string(index=False).split("\n")
12+
13+
# Pad lines to the same length for alignment
14+
max_len_1 = max(len(line) for line in df1_str)
15+
padded_df1 = [line.ljust(max_len_1) for line in df1_str]
16+
17+
# Print side-by-side
18+
print("Result".ljust(max_len_1) + " | Expected")
19+
for line1, line2 in zip(padded_df1, df2_str):
20+
print(f"{line1} | {line2}")
21+
22+
23+
# data = np.arange(50).reshape(10, 5)
24+
# fill_val = 5
25+
26+
# data = pd.array(np.random.choice([True, False], size=(10, 5)), dtype="boolean")
27+
# fill_val = True
28+
29+
data = np.arange(50).reshape(10, 5)
30+
# data_mult = pd.array([i for i in range(10)], dtype=tm.SIGNED_INT_NUMPY_DTYPES[0])
31+
data_mult = pd.array(list(range(10)), dtype=tm.SIGNED_INT_EA_DTYPES[0])
32+
fill_val = 5
33+
34+
# print(tm.ALL_INT_DTYPES)
35+
# print(tm.SIGNED_INT_EA_DTYPES)
36+
# tm.SIGNED_INT_NUMPY_DTYPES[0]
37+
print(type(data_mult))
38+
39+
# TODO masking not working with EA with dim > 1
40+
# NOTE currently trying to get EA testing set up
41+
42+
columns = list("ABCDE")
43+
df_base = pd.DataFrame(data, columns=columns)
44+
for i in range(5):
45+
df_base.iat[i, i] = np.nan
46+
df_base.iat[i + 1, i] = np.nan
47+
df_base.iat[i + 4, i] = np.nan
48+
49+
mask = df_base.isna().values
50+
51+
data_mult_re = data_mult.reshape(10, 1)
52+
mask = mask[:, :-1] & data_mult_re
53+
54+
df_result = df_base.mul(data_mult, axis=0, fill_value=fill_val)
55+
print(df_result)
56+
# df_expected = (df_base.fillna(fill_val).mul(data_mult.fillna(fill_val),
57+
# axis=0)).mask(mask, np.nan)
58+
59+
# print_side_by_side(df_result, df_expected)
60+
# # tm.assert_frame_equal(df_result, df_expected)

test2.py

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
# mypy: ignore-errors
2+
import numpy as np
3+
4+
import pandas as pd
5+
6+
7+
def print_side_by_side(df1, df2):
8+
# Convert to string and split into lines
9+
df1_str = df1.to_string(index=False).split("\n")
10+
df2_str = df2.to_string(index=False).split("\n")
11+
12+
# Pad lines to the same length for alignment
13+
max_len_1 = max(len(line) for line in df1_str)
14+
padded_df1 = [line.ljust(max_len_1) for line in df1_str]
15+
16+
# Print side-by-side
17+
print("Result".ljust(max_len_1) + " | Expected")
18+
for line1, line2 in zip(padded_df1, df2_str):
19+
print(f"{line1} | {line2}")
20+
21+
22+
data = np.arange(50).reshape(10, 5)
23+
fill_val = 5
24+
25+
# data = pd.array(np.random.choice([True, False], size=(10, 5)), dtype="boolean")
26+
# fill_val = True
27+
28+
# data = pd.array([i for i in range(50)], dtype="int")
29+
# fill_val = 5
30+
31+
print(type(data))
32+
33+
columns = list("ABCDE")
34+
df = pd.DataFrame(data, columns=columns)
35+
for i in range(5):
36+
df.iat[i, i] = np.nan
37+
df.iat[i + 1, i] = np.nan
38+
df.iat[i + 4, i] = np.nan
39+
40+
df_base = df.iloc[:, :-1]
41+
df_mult = df.iloc[:, [-1]]
42+
43+
mask = df.isna().values
44+
mask = mask[:, :-1] & mask[:, [-1]]
45+
46+
df_result = df_base.mul(df_mult, axis=0, fill_value=fill_val)
47+
df_expected = (df_base.fillna(fill_val).mul(df_mult.fillna(fill_val), axis=0)).mask(
48+
mask, np.nan
49+
)
50+
51+
print_side_by_side(df_result, df_expected)
52+
# tm.assert_frame_equal(df_result, df_expected)

0 commit comments

Comments
 (0)