我正在运行一个作为CGI的python文件,该文件正在将CSV读取到pandas数据帧中。问题是,当我试图获取只有整数值的列的唯一值时,我会在数据值后面附加一个额外的"L"。
这是代码。
def Main():
formData = cgi.FieldStorage()
fileName = str(formData.getvalue('file'))
field = str(formData.getvalue('field'))
df = fileRead.readFile(fileName)
unique = pd.unique(df[field])
print unique.tolist()
这是输出:
[1L,2L,3L,4L,5L,6L,7L,8L,9L,10L,11L,12L,13L,14L,15L,16L,17L,18L,19L,20L,21L,22L,23L,24L,25L,26L,27L,28L]
这适用于具有浮点值或文本值的列。
[25.9,29.5,27.9,29.9,30.9,28.9,84.9,82.9,35.9,31.5,31.0,30.0,36.9,41.9,40.5,43.9,37.5,37.9,44.5,38.9,45.8,41.0]
顺便说一句,fileRead只是另一个将CSV读取到数据帧的文件。
df = pd.read_csv(path)
这里的"L"指的是"Long"。除了占用更多内存之外,它不应该影响您的代码。
示例:1L+2=3L
此外,与其做:
unique = pd.unique(df[field])
试试这个
unique = df.drop_duplicates('field')