#python #python-3.x #pandas
#python #python-3.x #панды
Вопрос:
Приведенный ниже пример кода отлично работает для создания множества диаграмм.
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn import datasets
iris = datasets.load_iris()
df = pd.DataFrame(iris.data, columns=iris.feature_names)
# sklearn provides the iris species as integer values since this is required for classification
# here we're just adding a column with the species names to the dataframe for visualisation
df['species'] = np.array([iris.target_names[i] for i in iris.target])
sns.pairplot(df, hue='species')
Три строки кода ниже каким-то образом правильно передают все данные в фрейме данных.
df = pd.DataFrame(iris.data, columns=iris.feature_names)
df['species'] = np.array([iris.target_names[i] for i in iris.target])
sns.pairplot(df, hue='species')
list(df)
['sepal length (cm)',
'sepal width (cm)',
'petal length (cm)',
'petal width (cm)']
Теперь я загружаю свои собственные данные в фрейм данных и пытаюсь сделать то же самое, вот так.
df = pd.read_csv('C:\path_to_data\test.csv')
df1 = df[df['officearea']!=0]
df1.shape
list(df1)
df1 = pd.DataFrame(df1.data, columns=df1.feature_names)
list(df1)
На данный момент, используя мои данные, я получаю следующую ошибку.
AttributeError: 'DataFrame' object has no attribute 'data'
В моем наборе данных, когда я запускаю эту строку:
list(df1)
Я вижу это:
['index',
'zone',
'lot',
etc., etc., etc.,
'address',
'sensor',
'map']
Комментарии:
1.
.data
здесь должен быть столбец, у наборов данных Iris былdata
атрибут, а у вас нет. Кроме того, вам нужно создать второй df только в том случае, если вы собираетесь создать подмножество, вы хотите это сделать? Также у вас не будет вызываемого столбцаfeature_names
, это также то, что есть в образце данных, а не в вашем csv2. вы можете использовать
df1.values
вместоdf1.data
3. Странно. Я заглянул в заголовки фрейма данных и не увидел ничего с именем «data» или «feature_names». Хорошо, итак, я только что попробовал это: df1 = список pd.DataFrame(df1.values)(df1) Теперь у меня есть все числа вместо имен столбцов. Я пытаюсь выполнить итерацию по списку и создать кучу диаграмм. Возможно, это неправильный подход.