Extending pandas generates warning about column creation












0















I have a class that extends pandas



class teste(pd.DataFrame):

def __init__(self, data=None, index=None, columns=None, dtype=None,
copy=False, atrib_0 = '', atrib_1 = None, atrib_2 = ):

super(teste,self).__init__(data=data, index=index, columns=columns, dtype=dtype, copy=copy)

self.atrib_0 = atrib_0
self.atrib_1 = atrib_1
self.atrib_2 = atrib_2

return


I created an instance of that class using the following code:



t = teste(pandas_df,
atrib_0 = 'NAME',
atrib_1 = 'D',
atrib_2 = ['A','B','C','D'],
)


But doing that generates a UserWarning for the atrib_2, saying Pandas doesn't allow columns to be created via a new attribute name.



Since I am not creating a new column, but attributing a property to that instance of my class, I believe it gets confused because it's possible to access existing columns using the code df.new_column = . Any new attribute that gets a list generates that warning.



Does anybody know how to get rid of it? What am I doing wrong? Any help is much appreciated.










share|improve this question




















  • 1





    You can't use dot notation to create a new column, only bracket notation. Once the column is created, then you can use dot notation to access it. See this SO answer and this repo issue for a more in-depth discussion.

    – dmitriys
    Nov 23 '18 at 21:26













  • Yes, my mistake when I commented about why I though the warning was showing. I'll edit the question.

    – Gaduks
    Nov 23 '18 at 21:29











  • It's just a warning. It works as expected right?

    – ayhan
    Nov 23 '18 at 21:40











  • Yes, I believe it's just the warning, I encountered no other issues so far. But I think there must be a way to do it without generating it. And I am not sure, but I think I must not be doing it right, since the warning was generated.

    – Gaduks
    Nov 23 '18 at 21:47
















0















I have a class that extends pandas



class teste(pd.DataFrame):

def __init__(self, data=None, index=None, columns=None, dtype=None,
copy=False, atrib_0 = '', atrib_1 = None, atrib_2 = ):

super(teste,self).__init__(data=data, index=index, columns=columns, dtype=dtype, copy=copy)

self.atrib_0 = atrib_0
self.atrib_1 = atrib_1
self.atrib_2 = atrib_2

return


I created an instance of that class using the following code:



t = teste(pandas_df,
atrib_0 = 'NAME',
atrib_1 = 'D',
atrib_2 = ['A','B','C','D'],
)


But doing that generates a UserWarning for the atrib_2, saying Pandas doesn't allow columns to be created via a new attribute name.



Since I am not creating a new column, but attributing a property to that instance of my class, I believe it gets confused because it's possible to access existing columns using the code df.new_column = . Any new attribute that gets a list generates that warning.



Does anybody know how to get rid of it? What am I doing wrong? Any help is much appreciated.










share|improve this question




















  • 1





    You can't use dot notation to create a new column, only bracket notation. Once the column is created, then you can use dot notation to access it. See this SO answer and this repo issue for a more in-depth discussion.

    – dmitriys
    Nov 23 '18 at 21:26













  • Yes, my mistake when I commented about why I though the warning was showing. I'll edit the question.

    – Gaduks
    Nov 23 '18 at 21:29











  • It's just a warning. It works as expected right?

    – ayhan
    Nov 23 '18 at 21:40











  • Yes, I believe it's just the warning, I encountered no other issues so far. But I think there must be a way to do it without generating it. And I am not sure, but I think I must not be doing it right, since the warning was generated.

    – Gaduks
    Nov 23 '18 at 21:47














0












0








0








I have a class that extends pandas



class teste(pd.DataFrame):

def __init__(self, data=None, index=None, columns=None, dtype=None,
copy=False, atrib_0 = '', atrib_1 = None, atrib_2 = ):

super(teste,self).__init__(data=data, index=index, columns=columns, dtype=dtype, copy=copy)

self.atrib_0 = atrib_0
self.atrib_1 = atrib_1
self.atrib_2 = atrib_2

return


I created an instance of that class using the following code:



t = teste(pandas_df,
atrib_0 = 'NAME',
atrib_1 = 'D',
atrib_2 = ['A','B','C','D'],
)


But doing that generates a UserWarning for the atrib_2, saying Pandas doesn't allow columns to be created via a new attribute name.



Since I am not creating a new column, but attributing a property to that instance of my class, I believe it gets confused because it's possible to access existing columns using the code df.new_column = . Any new attribute that gets a list generates that warning.



Does anybody know how to get rid of it? What am I doing wrong? Any help is much appreciated.










share|improve this question
















I have a class that extends pandas



class teste(pd.DataFrame):

def __init__(self, data=None, index=None, columns=None, dtype=None,
copy=False, atrib_0 = '', atrib_1 = None, atrib_2 = ):

super(teste,self).__init__(data=data, index=index, columns=columns, dtype=dtype, copy=copy)

self.atrib_0 = atrib_0
self.atrib_1 = atrib_1
self.atrib_2 = atrib_2

return


I created an instance of that class using the following code:



t = teste(pandas_df,
atrib_0 = 'NAME',
atrib_1 = 'D',
atrib_2 = ['A','B','C','D'],
)


But doing that generates a UserWarning for the atrib_2, saying Pandas doesn't allow columns to be created via a new attribute name.



Since I am not creating a new column, but attributing a property to that instance of my class, I believe it gets confused because it's possible to access existing columns using the code df.new_column = . Any new attribute that gets a list generates that warning.



Does anybody know how to get rid of it? What am I doing wrong? Any help is much appreciated.







python pandas class






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 23 '18 at 21:31







Gaduks

















asked Nov 23 '18 at 18:19









GaduksGaduks

364211




364211








  • 1





    You can't use dot notation to create a new column, only bracket notation. Once the column is created, then you can use dot notation to access it. See this SO answer and this repo issue for a more in-depth discussion.

    – dmitriys
    Nov 23 '18 at 21:26













  • Yes, my mistake when I commented about why I though the warning was showing. I'll edit the question.

    – Gaduks
    Nov 23 '18 at 21:29











  • It's just a warning. It works as expected right?

    – ayhan
    Nov 23 '18 at 21:40











  • Yes, I believe it's just the warning, I encountered no other issues so far. But I think there must be a way to do it without generating it. And I am not sure, but I think I must not be doing it right, since the warning was generated.

    – Gaduks
    Nov 23 '18 at 21:47














  • 1





    You can't use dot notation to create a new column, only bracket notation. Once the column is created, then you can use dot notation to access it. See this SO answer and this repo issue for a more in-depth discussion.

    – dmitriys
    Nov 23 '18 at 21:26













  • Yes, my mistake when I commented about why I though the warning was showing. I'll edit the question.

    – Gaduks
    Nov 23 '18 at 21:29











  • It's just a warning. It works as expected right?

    – ayhan
    Nov 23 '18 at 21:40











  • Yes, I believe it's just the warning, I encountered no other issues so far. But I think there must be a way to do it without generating it. And I am not sure, but I think I must not be doing it right, since the warning was generated.

    – Gaduks
    Nov 23 '18 at 21:47








1




1





You can't use dot notation to create a new column, only bracket notation. Once the column is created, then you can use dot notation to access it. See this SO answer and this repo issue for a more in-depth discussion.

– dmitriys
Nov 23 '18 at 21:26







You can't use dot notation to create a new column, only bracket notation. Once the column is created, then you can use dot notation to access it. See this SO answer and this repo issue for a more in-depth discussion.

– dmitriys
Nov 23 '18 at 21:26















Yes, my mistake when I commented about why I though the warning was showing. I'll edit the question.

– Gaduks
Nov 23 '18 at 21:29





Yes, my mistake when I commented about why I though the warning was showing. I'll edit the question.

– Gaduks
Nov 23 '18 at 21:29













It's just a warning. It works as expected right?

– ayhan
Nov 23 '18 at 21:40





It's just a warning. It works as expected right?

– ayhan
Nov 23 '18 at 21:40













Yes, I believe it's just the warning, I encountered no other issues so far. But I think there must be a way to do it without generating it. And I am not sure, but I think I must not be doing it right, since the warning was generated.

– Gaduks
Nov 23 '18 at 21:47





Yes, I believe it's just the warning, I encountered no other issues so far. But I think there must be a way to do it without generating it. And I am not sure, but I think I must not be doing it right, since the warning was generated.

– Gaduks
Nov 23 '18 at 21:47












0






active

oldest

votes











Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53451398%2fextending-pandas-generates-warning-about-column-creation%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























0






active

oldest

votes








0






active

oldest

votes









active

oldest

votes






active

oldest

votes
















draft saved

draft discarded




















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53451398%2fextending-pandas-generates-warning-about-column-creation%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

404 Error Contact Form 7 ajax form submitting

How to know if a Active Directory user can login interactively

TypeError: fit_transform() missing 1 required positional argument: 'X'