Изменение формы CSV-данных в python с использованием pandas

#python #pandas #numpy

#python #pandas #numpy

Вопрос:

У меня есть набор данных csv в виде :

     5.1,3.5,1.4,0.2,Iris-setosa
    7.0,3.2,4.7,1.4,Iris-versicolor
    6.3,3.3,6.0,2.5,Iris-virginica
    4.9,3.0,1.4,0.2,Iris-setosa
    4.7,3.2,1.3,0.2,Iris-setosa
    4.4,2.9,1.4,0.2,Iris-setosa
    5.1,2.5,3.0,1.1,Iris-versicolor
    5.7,2.8,4.1,1.3,Iris-versicolor
    5.8,2.7,5.1,1.9,Iris-virginica
    7.1,3.0,5.9,2.1,Iris-virginica
    6.3,2.9,5.6,1.8,Iris-virginica
 

Я хочу, чтобы это было как:

 Iris-setosa,Iris-versicolor,Iris-virginica
5.1,3.5,1.4,
7.0,3.2,4.7,
6.3,3.3,6.0,
4.9,3.0,1.4,
4.7,3.2,1.3
 

Я искал, и есть много ответов, таких как использование pd.pivot, но не получил желаемого результата. Когда я попытался присвоить некоторый индекс A для pivot, он обнаружил, что «индекс имеет повторяющиеся записи».
Если ответ содержит функцию .pivot, то не могли бы вы, пожалуйста, объяснить мне, что на самом деле представляет собой индекс, столбец и значения.

Ответ №1:

Я считаю, что вам нужно фильтровать столбцы по позициям — сначала 3 по DataFrame.iloc и, при необходимости, задавать имена столбцов по list :

 df = df.iloc[:, :3]
df.columns = ['Iris-setosa','Iris-versicolor','Iris-virginica']
print (df)
    Iris-setosa  Iris-versicolor  Iris-virginica
0           5.1              3.5             1.4
1           7.0              3.2             4.7
2           6.3              3.3             6.0
3           4.9              3.0             1.4
4           4.7              3.2             1.3
5           4.4              2.9             1.4
6           5.1              2.5             3.0
7           5.7              2.8             4.1
8           5.8              2.7             5.1
9           7.1              3.0             5.9
10          6.3              2.9             5.6