стекирование данных панд изменяет данные - PullRequest
0 голосов
/ 27 апреля 2018

Я пытаюсь сложить два фрейма данных с 3 столбцами, используя concat, append или merge. Результатом является 5-колоночный фрейм данных, в котором исходные столбцы имеют разный порядок мест. Вот некоторые из вещей, которые я пробовал:

dfTrain = pd.read_csv("agr_hi_train.csv")
dfTrain2 = pd.read_csv("english/agr_en_train.csv")
dfTrain2.reset_index()
frames = [dfTrain, dfTrain2]
test = dfTrain2.append(dfTrain, ignore_index=True)
test2 = dfTrain2.append(dfTrain)
test3 = pd.concat(frames, axis=0, ignore_index=True)
test4 = pd.merge(dfTrain,dfTrain2, right_index=True, left_index=True)

Со следующими результатами:

print(dfTrain.shape)
print(dfTrain2.shape)
print(test.shape)
print(test2.shape)
print(test3.shape)
print(test4.shape)

Вывод:

(20198, 5) (20198, 5) (11998, 6) (8200, 6) (8200,3) (11998, 3)

Я хочу, чтобы результат был:

(20198,3) # то есть последние два сложены друг на друга. , , Любые идеи, почему я получаю дополнительные столбцы и т. Д.?

1 Ответ

0 голосов
/ 27 апреля 2018

Если у вас разные имена столбцов, то ваше приложение будет разделять столбцы. Например:

dfTrain = pd.DataFrame(np.random.rand(8200, 3), columns=['A', 'B', 'C'])
dfTrain2 = pd.DataFrame(np.random.rand(11998, 3), columns=['D', 'E', 'F'])
test = dfTrain.append(dfTrain2)
print(test)

имеет вывод:

          A         B         C         D         E         F
0      0.617294  0.507264  0.330792       NaN       NaN       NaN
1      0.439806  0.355340  0.757864       NaN       NaN       NaN
2      0.740674  0.332794  0.530613       NaN       NaN       NaN
...
20195       NaN       NaN       NaN  0.295392  0.621741  0.255251
20196       NaN       NaN       NaN  0.096586  0.841174  0.392839
20197       NaN       NaN       NaN  0.071756  0.998280  0.451681

Если вы переименуете столбцы в обоих фреймах данных, чтобы они совпали, то это выстроится в линию.

dfTrain2.columns = ['A','B','C']
test2 = dfTrain.append(dfTrain2)
print(test2)

          A         B         C
0      0.545936  0.103332  0.939721
1      0.258807  0.274423  0.262293
2      0.374780  0.458810  0.955040
...
[20198 rows x 3 columns]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...