我正在使用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
答案 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。