-
-
Notifications
You must be signed in to change notification settings - Fork 18.4k
BUG: assignment with .at or .loc modifies dataframe when it fails #15490
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
Comments
The well-defined and document indexers have these types of guarantees (e.g. so unless someone puts forth a fix, this is won't fix. |
actually I spoke too soon about other operators. It depends if there are multiple operations or not. Though honestly you are pushing the boundaries here; these are not atomic operations. That said, if you'd like to push a fix would take it.
this is fine.
|
@jreback the same happens with loc if you specify both dims:
|
of course this is a 2 stage operation in implementation |
... hmmm, so the caller should guess at the implementation to infer the behavior? |
Given that the behaviour is also present in non-deprecated functionality ( |
Is the result from this example related? I was surprised that this did not return an error when the left side of the last assignment does.
|
Code Sample, a copy-pastable example if possible
Problem description
The above call set_value (correctly) fails and throw an exception. However, the dataframe has been modified. It has a new 'c' column of type float. Because the operation failed, it probably should have remained unchanged.
Expected Output
print d should print an empty dataframe.
Output of
pd.show_versions()
pandas: 0.19.1
nose: 1.3.1
pip: 1.5.4
setuptools: 3.3
Cython: 0.25.1
numpy: 1.11.2
scipy: 0.18.1
statsmodels: 0.6.1
xarray: None
IPython: 4.2.1
sphinx: None
patsy: 0.2.1
dateutil: 2.6.0
pytz: 2016.7
blosc: None
bottleneck: None
tables: 3.1.1
numexpr: 2.2.2
matplotlib: 1.3.1
openpyxl: 1.7.0
xlrd: 0.9.2
xlwt: 0.7.5
xlsxwriter: None
lxml: None
bs4: 4.2.1
html5lib: 0.999
httplib2: 0.8
apiclient: None
sqlalchemy: 1.0.15
pymysql: None
psycopg2: 2.4.5 (dt dec mx pq3 ext)
jinja2: 2.8
boto: 2.41.0
pandas_datareader: None
The text was updated successfully, but these errors were encountered: