По сути, создавая выходную переменную с помощью pd.Series (), вы создаете пустой набор данных.Это переносится в конкатенации, причем размер пустого набора данных определяется как тот же размер (ну, то же число строк), что и для x [sim_count].Единственный способ, которым Python / Pandas знает, как представить эту «пустую» серию, - это использовать серию значений NaN.Когда вы объединяете, вы фактически говорите: я хочу добавить мой новый фрейм данных / серию в «пустую» серию ... и пустая серия просто получает NaN.
Более эффективный способ сделать это - назначить«a» к фрейму данных, затем объедините.
a = pd.DataFrame()
a = pandas.concat([a, x.rename(sim_count)], axis=1)
Вы можете спросить себя, почему это работает, и с помощью pd.Series () вынуждает столбец NaN.Насколько я понимаю, dataframe создает пустое место в памяти для добавляемых данных (т.е. вы помещаете ваши новые данные в пустой dataframe), тогда как когда вы делаете pd.concat ([pd.Series (), x.rename (sim_count)], axis1) вы говорите пандам, что пустой ряд (pd.Series ()) важен и должен быть сохранен, и что новые данные должны быть добавлены ONTO "a".Отсюда и столбец NaNs.