在对 csv/pandas/等进行一些研究来操作一个巨大的 csv 文件后,我决定使用 pandas 来切片我需要的信息。 现在,我可以使用过滤器获取我需要的内容,即“Name”=“Greg”,当列名称具有 Greg 时,我只看到行。 不过,我现在想创建一个包含特定列(即城市)的所有信息的 pyhton 列表。我怎么能这么做呢? 然后我将仅使用列表进行排序、计数等。
我有:
import pandas as pd
all_data = pd.read_csv(
'myfile.csv', # file name
sep=',', # column separator
quotechar='"', # quoting character
encoding='utf-16',
na_values=0, # fill missing values with 0
usecols=[0,1,3], # columns to use
decimal='.') # symbol for decimals
slice1 = all_data[all_data['Name'] == 'Greg']
print (slice1)
打印示例(切片1):
最佳答案
#output is Series - column City
slice1 = all_data.ix[all_data['Name'] == 'Greg', 'City']
#generate list from Series
L = all_data.ix[all_data['Name'] == 'Greg', 'City'].tolist()
示例:
import pandas as pd
all_data = pd.DataFrame({'Name':['Greg','Greg','Greg','Adam'],
'Coutry':['US','UK','UK','UK'],
'City':['LA','LD','RE','LB']},
index=[221,564,800,500])
print (all_data)
City Coutry Name
221 LA US Greg
564 LD UK Greg
800 RE UK Greg
500 LB UK Adam
slice1 = all_data.ix[all_data['Name'] == 'Greg', 'City']
print (slice1)
221 LA
564 LD
800 RE
Name: City, dtype: object
L = all_data.ix[all_data['Name'] == 'Greg', 'City'].tolist()
print (L)
['LA', 'LD', 'RE']
关于python - 使用 Pandas 进行切片和创建列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39141791/