简体   繁体   中英

How can I convert each Pandas Data Frame row into an object including the column values as the attributes?

Suppose I have a DataFrame including following columns "NAME", "SURNAME", "AGE" and I would like to create one object for each row, including those column values as its variables.

person = ConvertRow2Object(frame.iloc[0,:])
print person.NAME //outputs Gary

How can I do it with a generic solution to any DataFrame with any kind of column names and data types?

You can convert the whole thing to a numpy recarray, then each record in the array is attributed:

people = frame.to_records()
person = people[0]
print person.NAME // ...

Using a namedtuple also seems to work:

from collections import namedtuple

Person = namedtuple('Person', frame.dtypes.index.tolist())
person = Person(*frame.iloc[0,:])
print person.NAME // ...

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM