Python pandas将结果存储在变量中会遇到麻烦

时间:2015-06-01 06:39:36

标签: python csv variables pandas

我正在使用pandas来处理一些csv文件,但是我无法将结果存储在变量中并按原样将其打印出来。

这是我的代码。

df = pd.read_csv(MY_FILE.csv, index_col=False, header=0)
df2 = df[(df['Name'])]
# Trying to get the result of Name to the variable
n = df2['Name']
print(n)

结果我得到了:

1    jake
Name: Name, dtype: object

我的问题:

是否可以将“Jake”存储在变量“n”中,以便我可以在需要时将其调出来?

EG:打印(n)

结果:Jake

这是我构建的代码

def name_search():

    list_to_open = input("Which list to open: ") + ".csv"
    directory = "C:\Users\Jake Wong\PycharmProjects\box" "\\" + list_to_open
    if os.path.isfile(directory):

# Search for NAME
        Name_id = input("Name to search for: ")
        df = pd.read_csv(directory, index_col=False, header=0)
        df2 = df[(df['Name'] == Name_id)]

        # Defining the name to save the file as
        n = df2['Name'].ix[1]

        print(n)

这是csv文件中的内容

S/N,Name,Points,test1,test2,test3
s49,sing chun,5000,sc,90 sunrsie,4984365132
s49,Alice Suh,5000,jake,88 sunrsie,15641816
s1231,Alice Suhfds,5000,sw,54290 sunrsie,1561986153
s49,Jake Wong,5000,jake,88 sunrsie,15641816

1 个答案:

答案 0 :(得分:1)

问题是n = df2['Name']实际上是一个熊猫系列:

type(df.loc[df.Name == 'Jake Wong'].Name)
pandas.core.series.Series

如果你只想要这个值,你可以使用values[0] - values是Pandas对象背后的底层数组,在这种情况下,它的长度为1,你只需要获取第一个元素。

n = df2['Name'].values[0]

此外,您的CSV格式不正确:在列之类的内容排列是不够的,您需要在列之间具有一致的分隔符(通常是逗号或制表符),因此解析器可以知道何时列结束,另一个开始。你能修好你的csv吗?:

S/n,Name,points
s56,Alice Suh,5000
s49,Jake Wong,5000

否则我们可以为您开发另一种解决方案,但我们可能会使用正则表达式而不是pandas。