Skip to content

Commit 1963b81

Browse files
committed
Ensure dataframe attrs not propagated to series
1 parent 45ea153 commit 1963b81

File tree

2 files changed

+6
-4
lines changed

2 files changed

+6
-4
lines changed

pandas/io/parquet.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -178,8 +178,8 @@ def _read_attrs(table, df: DataFrame):
178178
pandas_metadata = json.loads(schema_metadata.get(b"pandas", "{}"))
179179
df.attrs = pandas_metadata.get("attrs", {})
180180
col_attrs = pandas_metadata.get("column_attrs", {})
181-
for col, attrs in col_attrs.items():
182-
df[col].attrs = attrs
181+
for col in df.columns:
182+
df[col].attrs = col_attrs.get(col, {})
183183

184184
def write(
185185
self,

pandas/tests/io/test_parquet.py

+4-2
Original file line numberDiff line numberDiff line change
@@ -909,23 +909,25 @@ def test_read_parquet_manager(self, pa, using_array_manager):
909909

910910
@td.skip_if_no("pyarrow")
911911
def test_read_write_attrs(self, pa):
912-
df = pd.DataFrame({"a": [1]})
912+
df = pd.DataFrame({"a": [1], "b": [1]})
913913
df.attrs = {"name": "my custom dataset"}
914914
df.a.attrs = {
915915
"long_name": "Description about data",
916916
"nodata": -1,
917917
"units": "metre",
918918
}
919+
df.b.attrs = {}
919920
with tm.ensure_clean() as path:
920921
df.to_parquet(path)
921922
result = read_parquet(path)
922923

923924
assert result.attrs == {"name": "my custom dataset"}
924-
assert result["a"].attrs == {
925+
assert result.a.attrs == {
925926
"long_name": "Description about data",
926927
"nodata": -1,
927928
"units": "metre",
928929
}
930+
assert result.b.attrs == {}
929931

930932

931933
class TestParquetFastParquet(Base):

0 commit comments

Comments
 (0)