Skip to content

BUG: expanding dataframe row-wise with single-element-list is no-op, but two-element-list copies #56203

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
3 tasks done
MarcoGorelli opened this issue Nov 27, 2023 · 5 comments

Comments

@MarcoGorelli
Copy link
Member

Pandas version checks

  • I have checked that this issue has not already been reported.

  • I have confirmed this bug exists on the latest version of pandas.

  • I have confirmed this bug exists on the main branch of pandas.

Reproducible Example

df = pd.DataFrame(columns=['x', 'y'])
df.loc[:, 'x'] = [1]
print(df)  # empty dataframe

df = pd.DataFrame(columns=['x', 'y'])
df.loc[:, 'x'] = [1, 2]
print(df)  # 2-row dataframe

Issue Description

I get the output

Empty DataFrame
Columns: [x, y]
Index: []
   x    y
0  1  NaN
1  2  NaN

Expected Behavior

probably

   x    y
0  1  NaN
   x    y
0  1  NaN
1  2  NaN

Installed Versions

INSTALLED VERSIONS

commit : 1d56672
python : 3.10.12.final.0
python-bits : 64
OS : Linux
OS-release : 5.10.102.1-microsoft-standard-WSL2
Version : #1 SMP Wed Mar 2 00:30:59 UTC 2022
machine : x86_64
processor : x86_64
byteorder : little
LC_ALL : None
LANG : en_GB.UTF-8
LOCALE : en_GB.UTF-8

pandas : 2.2.0.dev0+612.g1d56672407
numpy : 1.26.2
pytz : 2023.3.post1
dateutil : 2.8.2
setuptools : 59.6.0
pip : 23.3.1
Cython : 3.0.5
pytest : 7.4.3
hypothesis : 6.89.0
sphinx : 6.2.1
blosc : 1.11.1
feather : None
xlsxwriter : 3.1.9
lxml.etree : 4.9.3
html5lib : 1.1
pymysql : 1.4.6
psycopg2 : 2.9.9
jinja2 : 3.1.2
IPython : 8.17.2
pandas_datareader : None
adbc-driver-postgresql: None
adbc-driver-sqlite : None
bs4 : 4.12.2
bottleneck : 1.3.7
dataframe-api-compat : None
fastparquet : 2023.10.1
fsspec : 2023.10.0
gcsfs : 2023.10.0
matplotlib : 3.8.1
numba : 0.58.1
numexpr : 2.8.7
odfpy : None
openpyxl : 3.1.2
pandas_gbq : None
pyarrow : 14.0.1
pyreadstat : 1.2.4
python-calamine : None
pyxlsb : 1.0.10
s3fs : 2023.10.0
scipy : 1.11.3
sqlalchemy : 2.0.23
tables : 3.9.1
tabulate : 0.9.0
xarray : 2023.10.1
xlrd : 2.0.1
zstandard : 0.22.0
tzdata : 2023.3
qtpy : None
pyqt5 : None

@MarcoGorelli MarcoGorelli added Bug Needs Triage Issue that has not been reviewed by a pandas team member setitem-with-expansion and removed Needs Triage Issue that has not been reviewed by a pandas team member labels Nov 27, 2023
@sleepallday
Copy link

Take

@sleepallday
Copy link

sleepallday commented Feb 16, 2024

When execute the code piece,

df = pd.DataFrame(columns=['x', 'y'])
df.loc[:, 'x'] = [1, 2]

it raises error

> /pandas/pandas/core/internals/managers.py(2237)setitem_inplace()
-> arr[indexer] = value
ValueError: could not broadcast input array from shape (2,) into shape (0,)

which does not happen to the 1-row case, can we verify that if this kind of expansion usage is correct?

@MarcoGorelli
Copy link
Member Author

can't reproduce, sorry, I don't get any error running that (neither on main, nor on the latest release)

@sleepallday
Copy link

Do you set breakpoint and execute line by line or you just run df.loc[:, 'x'] = [1, 2]? In the latter case, the error will be caught so i guess that's why you don't see it?

@MarcoGorelli
Copy link
Member Author

ah I see what you mean now, sorry

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants