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