У меня есть файл csv с именем места, оценка A и оценка B, я хочу вывести значения A и Sc B в каждом месте. С помощью pandas я читаю csv и храню в DF, как показано ниже
import pandas as pd
csvdf = pd.read_csv("E:\redsa.csv")
print(csvdf)
Я получаю следующий результат
Place ScoreA ScoreB
0 Place 1 108 775
1 Place 2 109 781
Я хочу вывести значения баллов A и B для каждого места и сохранить их в отдельных переменных, и я попытался сделать это ниже
for row in csvdf.iterrows():
print(csvdf['ScoreA'],csvdf['ScoreB'])
Я получаю ниже выходной
0 108
1 109
Name: ScoreA, dtype: float64 0 775
1 781
Name: ScoreB, dtype: float64
0 108
1 109
Name: ScoreA, dtype: float64 0 775
1 781
Name: ScoreB, dtype: float64
я хочу проходить через каждое место и получать ScoreA и ScoreB и хранить их в соответствующих переменных, как я могу это сделать
Я считаю, что вам нужно apply
с axis=1
для цикла по строкам, потому что iterrows лучше избегать при низкой производительности, если это возможно:
def func(x):
print (x['ScoreA'])
print (x['ScoreB'])
#code
return x
df = csvdf.apply(func, axis=1)
print (df)
Вы можете создать индекс из первого столбца Place
по параметру index_col
в read_csv
а затем выбрать столбцы - вывод: Series
:
csvdf = pd.read_csv("E:\redsa.csv", index_col=[0])
print (csvdf['ScoreA'])
Place
Place 1 108
Place 2 109
Name: ScoreA, dtype: int64
print (csvdf['ScoreB'])
Place
Place 1 775
Place 2 781
Name: ScoreB, dtype: int64
Или выберите подмножества - вывод - 2 столбца DataFrame:
csvdf = pd.read_csv("E:\redsa.csv")
print (csvdf[['Place','ScoreA']])
Place ScoreA
0 Place 1 108
1 Place 2 109
print (csvdf[['Place','ScoreB']])
Place ScoreB
0 Place 1 775
1 Place 2 781
apply
сделает это.