Работа с python pandas 0.19.Python - запуск пустого информационного фрейма и заполнение из другого фрейма данных
Я хочу создать новый dataframe (df2) как подмножество существующего блока данных (df1). df1 выглядит следующим образом:
In [1]: df1.head()
Out [1]:
col1_name col2_name col3_name
0 23 42 55
1 27 55 57
2 52 20 52
3 99 18 53
4 65 32 51
Логика:
df2 = []
for i in range(0,N):
loc = some complicated logic
df1_sub = df1.ix[loc,]
df2.append(df1_sub)
df2 = pd.DataFrame.from_records(df2)
Результат df2 действительно dataframe, но содержание все состоит из имен столбцов df1. Это выглядит следующим образом:
In [2]: df2.head()
Out [2]:
col1_name col2_name col3_name
0 col1_name col2_name col3_name
1 col1_name col2_name col3_name
2 col1_name col2_name col3_name
3 col1_name col2_name col3_name
4 col1_name col2_name col3_name
Я знаю, что это, вероятно, связано с переходом от списка к dataframe, но я не уверен, что именно я здесь отсутствует. Или есть лучший способ сделать это?
включите 'df1.head()' и конечный результат, который вы хотите. Это затрудняет понимание проблемы. – MYGz
Я не уверен точно, что вы просите, но есть много вещей, которые необходимо решить. Не используйте '.ix', если это абсолютно необходимо. Вам не нужно создавать список данных для этого, но если вы это сделаете, последняя строка должна быть изменена на 'pd.concat (df2)'. Пожалуйста, предоставьте больше информации, так как может быть возможно не использовать цикл for для построения логики. Кроме того, имя 'df2' означает, что у вас есть DataFrame. Вместо этого используйте что-то вроде 'df_list'. –
в цикле for проверяет значение loc, он может сказать вам, что что-то не так – Shijo