读取熊猫中的csv文件并获取价值

时间:2018-10-15 06:45:47

标签: python pandas

我有一个包含地名,分数A和分数B的csv文件,我想提取每个位置的分数A和分数B值。在大熊猫的帮助下,我阅读了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并将它们存储在各自的变量中,我该怎么做

1 个答案:

答案 0 :(得分:1)

我相信您需要applyaxis=1才能逐行循环,因为iterrows is best avoid for poor performance,如果可能的话:

def func(x):
    print (x['ScoreA'])
    print (x['ScoreB'])

    #code
    return x

df = csvdf.apply(func, axis=1)
print (df)

您可以通过read_csv中的参数Place从第一index_col列创建索引,然后选择列-输出为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