Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Accessing a pandas.DataFrame column name with a '.' in it

I have a pandas dataframe df. One of the columns is Project.Fwd_Primer.

I would like to access that column, however when I use df.Project.Fwd_Primer I get:

AttributeError.

Is there another way I can access this column, or do I need to get rid of the period in it?

like image 663
Patrickc01 Avatar asked Jun 17 '16 14:06

Patrickc01


2 Answers

Use []:

df['Project.Fwd_Primer']

Sample:

import pandas as pd

df = pd.DataFrame({'Project.Fwd_Primer': {0: '1', 1: '2'}})

print (df)
    Project.Fwd_Primer
0                  1
1                  2
  
print (df['Project.Fwd_Primer'])
0    1
1    2
Name: Project.Fwd_Primer, dtype: object

EDIT:

You can also check attribute access in docs:

Warning

You can use this access only if the index element is a valid python identifier, e.g. s.1 is not allowed. See here for an explanation of valid identifiers.

The attribute will not be available if it conflicts with an existing method name, e.g. s.min is not allowed.

Similarly, the attribute will not be available if it conflicts with any of the following list: index, major_axis, minor_axis, items, labels.

In any of these cases, standard indexing will still work, e.g. s['1'], s['min'], and s['index'] will access the corresponding element or column.

The Series/Panel accesses are available starting in 0.13.0.

like image 176
jezrael Avatar answered Oct 07 '22 11:10

jezrael


try this:

df['Project.Fwd_Primer']
like image 38
MaxU - stop WAR against UA Avatar answered Oct 07 '22 11:10

MaxU - stop WAR against UA