Интерполяция для Dataframe без явных «NaN» строк в исходном Dataframe - PullRequest
1 голос
/ 08 марта 2019

Мне было интересно, как я могу интерполировать между строками для столбца «Данные», где я перебираю его и создаю новую строку с «0,3», «0,5» и «0,6», чтобы заполнить пробелы?

df = pd.DataFrame([0.1,0.2,0.4,0.7],columns=['Data'])
df

enter image description here

Как мне сделать это с кодом для исходного кадра данных, чтобы получить изображение ниже?

Большое спасибозаблаговременно.

1 Ответ

2 голосов
/ 08 марта 2019

По моему мнению, должно быть 2 решения, также добавлено больше столбцов к образцу данных:

df = pd.DataFrame({'Data': [0.1,0.2,0.4,0.7],
                   'A':list('abcd'),
                   'B':[4,5,6,9]})
print (df)
   Data  A  B
0   0.1  a  4
1   0.2  b  5
2   0.4  c  6
3   0.7  d  9

Создать индекс по столбцу Data и использовать DataFrame.reindex:

arr = np.arange(df.Data.min(),df.Data.max() + 0.1,0.1)

df1 = df.set_index('Data').reindex(arr).reset_index()
print (df1)
   Data    A    B
0   0.1    a  4.0
1   0.2    b  5.0
2   0.3  NaN  NaN
3   0.4    c  6.0
4   0.5  NaN  NaN
5   0.6  NaN  NaN
6   0.7  NaN  NaN

Или создать помощника DataFrame и DataFrame.merge с левым соединением:

df1 = pd.DataFrame({'Data':arr}).merge(df, how='left')
print (df1)
   Data    A    B
0   0.1    a  4.0
1   0.2    b  5.0
2   0.3  NaN  NaN
3   0.4    c  6.0
4   0.5  NaN  NaN
5   0.6  NaN  NaN
6   0.7  NaN  NaN
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...