назначьте элементы в списке разным столбцам фрейма данных

#python #pandas

#python #pandas

Вопрос:

 l = [1,2]
df = pd.DataFrame(columns=['x','y'])
  

Я пытаюсь назначить элементы списка l разным столбцам в df , но не могу найти способ сделать это. df.append(l) добавляет список в один столбец.

Я также хотел бы иметь возможность добавлять другие списки, которые я создаю впоследствии

 l2 = [3,4]
df.append(l2)
  

Это ожидаемый результат

 >>> df 
    x   y
    1   2
    3   4
    ... ...
  

Комментарии:

1. Спасибо всем за ваши ответы, все они отлично работают!

Ответ №1:

Использование loc

 df.loc[len(df), :] = l
  

Ответ №2:

Мы можем использовать loc с length of df :

 l = [1,2]
df = pd.DataFrame(columns=['x','y'])
df.loc[len(df)] = l

print(df,'n')

l2 = [3,4]

df.loc[len(df)] = l2

print(df)
   x  y
0  1  2 

   x  y
0  1  2
1  3  4
  

Ответ №3:

Вы можете использовать Series формат вашего list затем append

 df=df.append(pd.Series(l,index=df.columns,name=0))
l2 = [3,4]
df=df.append(pd.Series(l2,index=df.columns,name=1))
df
Out[424]: 
   x  y
0  1  2
1  3  4
  

Ответ №4:

  1. Вы могли использовать pd.concat для достижения именно того, чего хотели:
     columns = ['x','y']
    df = pd.DataFrame(columns=columns)
  

а затем добавить «строки» следующим образом:

    l = [1,2]
   df = pd.concat((df, pd.DataFrame(data=[l], columns=columns)))
   l = [3,4]
   df = pd.concat((df, pd.DataFrame(data=[l], columns=columns)))
  
  1. Однако вы также можете сделать что-то вроде следующего (если это имеет смысл в вашем реальном варианте использования):
    my_data = []
   my_data.append([1,2])
   my_data.append([3,4])
   # ...and then eventually:
   df = pd.DataFrame(my_data, columns=list('xy'))