panda, column access

Pavol Lisy pavol.lisy at gmail.com
Mon Feb 27 16:27:06 EST 2017


On 2/27/17, Andrew Zyman <formisc at gmail.com> wrote:
> Hello,
>  i'm trying to understand what is the difference between the below code.
> And how do i access the column's data without hardcoding the column name in
> such a way that i'll be able to convert it's values into the list of
> strings?
>
> I appreciate your help.
>
> Short version:
> colnames='hostname'

I think you meant:
colnames = ['hostname']

> data = pandas.read_csv(input_file, names=colnames)

> list_data = data.hostname.tolist() or list_data = data['hostname'].tolist()

> returns the list like - ['hostname','hostname1'] - exactly what i want.

> but neither of the below versions work as expected (returning the list of
> strings):

> list_data = data[0].tolist() -> errors with "return
> self._getitem_column(key)"

> list_data = data[colnames].values.tolist() -> the list_data is : [
> ['hostname'],['hostname1'...]

> list_data = data.tolist() -> errors with "AttributeError: 'DataFrame' object
> has no attribute 'tolist'"

What do you want is probably:

>>> data[colnames[0]].tolist()

or maybe if you don't want to remember colnames:

>>> data[data.columns[0]].tolist()

Be careful! Type of data[x] depend on what type is x.

>>> type(data['hostname'])  # -> pandas.core.series.Series
>>> type(data[['hostname']])  # -> pandas.core.frame.DataFrame



More information about the Python-list mailing list