Добавить данные в DF с именами столбцов, сохраненными в списке - PullRequest
0 голосов
/ 30 сентября 2019

Долгое время слушатель, впервые звонящий ...

Я новичок в python, пытаюсь понять, как обрабатывать списки для различных целей. В этом случае у меня есть длинный список объектов с плавающей точкой, которые я хотел бы разместить в кадре данных, добавляя новые строки с каждым циклом.

cols = ['col1','col2'....etc...]
df= pd.DataFrame(columns=cols)  

    for symbol in symbolList:

        col1 = some floating point calc
        col2 = another
        ...etc...

        df = df.append(pd.DataFrame(columns=cols, data=[[','.join(cols)]]))

Даже когда я пытаюсь использовать разные методыманипулирование получающейся строкой, чтобы убедить python рассматривать ее как список объектов, а не как строку.

Я уверен, что есть не только относительно простой способ изменить аргумент data =, так что это выполняется,но в целом более питонический способ достижения моего конечного результата. Я был бы рад услышать о последнем, но для моего назидания, если есть решение моего конкретного вопроса, я был бы очень признателен за вашу помощь.

1 Ответ

0 голосов
/ 30 сентября 2019

Вы можете попробовать использовать loc

symbolList = [*'ABCDEFG']
for symbol in symbolList:
    col1 = np.random.randn()
    col2 = np.random.randn()

    df.loc[symbol] = [col1, col2]

Однако. Если вы определили свой фрейм данных как float, вы можете использовать at

cols = ['col1','col2']
df= pd.DataFrame(columns=cols, dtype=float)  

symbolList = [*'ABCDEFG']
for symbol in symbolList:
    col1 = np.random.randn()
    col2 = np.random.randn()

    df.at[symbol] = [col1, col2]

df

       col1      col2
A -0.099437 -0.264494
B  0.460220 -0.250704
C -0.127054 -0.372424
D -0.909770  0.835610
E -0.442418  0.298014
F -0.468022  0.111015
G  0.080260  1.768664

Правда, вы могли бы использовать at для начала, но когда вы определили свой фрейм данных, dtypes столбца по умолчанию будетobject и когда вы используете at, он ничего не меняет, когда вы создаете новые строки float.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...