python - 使用 Pandas 进行切片和创建列表

标签 python list pandas dataframe conditional-statements

在对 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):

enter image description here

最佳答案

您可以使用ixtolist :

#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/

相关文章:

Python 和 igraph deepcopy : object. __new__(igraph.Edge) 不安全,使用 igraph.Edge.__new__()

python - 在数据框中查找某些值的索引并将其作为单独的列

python - 从背景中分离人物

c++ - 使用 Py++ 生成的代码作为 Python 扩展

python - 为什么在 Python 中列表访问 O(1)?

Python - 类型错误 : object of type '...' has no len()

python - 迭代具有多个属性的字典列表

python - 在python中分解多个csv字段

python - 将 groupby MultiIndex header 合并为一个单行 header

python - curve_fit 中的多个变量,sigma 形状不正确?