Добавление ряда в виде столбца во фрейме данных pandas

#python #pandas

#python #pandas

Вопрос:

У меня есть серия меток, которая выглядит так

 Marks
 95
 85
 75
 88
  

У меня также есть фрейм данных df с идентификатором

 ID
129 
1
398
311
329
  

Я хочу добавить метки в свой фрейм данных. Итак, я написал следующий код

df[‘Marks’]= метки, но мой df.head() возвращается

 ID     Marks
129     NaN
1       NaN
398     NaN
311     NaN
329     NaN
  

Ответ №1:

Вот так:

 import pandas as pd

Marks = [95, 85, 75, 80]

# creating the dataframe of IDs
array = {'ID': [129, 1, 398, 311]}
df = pd.DataFrame(array)

# Converting the series
dfmarks = pd.Series(Marks, name="marks")
# combining the two dataframes
df = pd.concat([df, dfmarks], axis=1)
df
  

Ответ №2:

 import pandas as pd

marks = pd.Series([95, 85, 75, 88])
df = pd.DataFrame([129, 1, 398, 311, 329], columns=["ID"])
df["Marks"] = marks
df.set_index("ID")
  

Это вернет фрейм данных только с 1 нанометром (в последней строке) из-за разницы в длине между df и marks .

Ответ №3:

Все, что вам нужно сделать, это:

 In [828]: df.loc[:, 'Marks'] = marks

In [829]: df
Out[829]: 
    ID  Marks
0  129   95.0
1    1   85.0
2  398   75.0
3  311   88.0
4  329    NaN