Почему DataFrame изменяет тип данных всех входных данных в объекты? - PullRequest
0 голосов
/ 24 ноября 2018

Я передаю массив numpy и pd.Series с различными типами данных text, int и float в pd.DataFrame, и на выходе получается DataFrame со всеми типами данных объекта.Почему он это делает, и есть ли что-нибудь, что я могу сделать, чтобы сохранить исходные типы данных?

pd.DataFrame(np.c_[X, TotalSF, TotalBaths, HasFire], columns=(list(X.columns) + ['TotalSF', 'TotalBaths', 'HasFire']))

X - это двумерный массив с некоторыми значениями в виде текста и некоторыми в качестве числа.TotalSF, TotalBaths и HasFire - это серии панд с числами в качестве значений.

1 Ответ

0 голосов
/ 24 ноября 2018

Работа с фреймами данных س с общими типами данных, если вы хотите изменить тип данных фрейма данных, используйте

pandas.DataFrame.astype(target type)

дорожку под кодом с и без метода типа:

import pandas as pd
data = pd.DataFrame(data=[["red", "apple"], ["yellow", "orange"], ["blue", "banana"], ["green", "avocado"]],
                    columns=["color", "fruitN"])
# data = data.set_index("fruitN")
file_1 = ["akee", "apricot", "avocado"]
file_2 = ["avocado", "bilberry", "banana", "blackberry"]
file_3 = ["blackberry", "coconut", "cranberry"]
file_1_df = pd.DataFrame(data=file_1, columns=["type_1"])
file_2_df = pd.DataFrame(data=file_2, columns=["type_2"])
file_3_df = pd.DataFrame(data=file_3, columns=["type_3"])
l = [file_1_df, file_2_df, file_3_df]
for x, y in enumerate(l):
    data['c' + str(x + 1)] = data.fruitN.isin(y.iloc[:, 0].tolist()).astype(int)

data = data["c2"].astype(int)
print(data)
...