#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