Как я могу перебирать элементы в фрейме данных?

#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 , это также то, что есть в образце данных, а не в вашем csv

2. вы можете использовать df1.values вместо df1.data

3. Странно. Я заглянул в заголовки фрейма данных и не увидел ничего с именем «data» или «feature_names». Хорошо, итак, я только что попробовал это: df1 = список pd.DataFrame(df1.values)(df1) Теперь у меня есть все числа вместо имен столбцов. Я пытаюсь выполнить итерацию по списку и создать кучу диаграмм. Возможно, это неправильный подход.