Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用Pandas分割和创建列表_Python_List_Pandas_Dataframe_Conditional Statements - Fatal编程技术网

Python 使用Pandas分割和创建列表

Python 使用Pandas分割和创建列表,python,list,pandas,dataframe,conditional-statements,Python,List,Pandas,Dataframe,Conditional Statements,在对csv/pandas/etc进行了一些研究之后,我决定使用pandas来剪切我需要的信息。 现在,我可以使用一个过滤器获得所需的内容,即“Name”=“Greg”,当列名为Greg时,我只看到行。 但是,我现在想创建一个pyhton列表,其中包含特定列(即城市)的所有信息。我怎么能这么做? 然后我将使用列表进行排序、计数等 我所拥有的: import pandas as pd all_data = pd.read_csv( 'myfile.csv', # fil

在对csv/pandas/etc进行了一些研究之后,我决定使用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):

您可以使用:

样本:

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']

谢谢!很好的输入!看起来Pandas不喜欢my City列的数据格式,因为它收到一个错误,上面写着:KeyError:“City”。知道为什么吗?也许在单词
City
前面有一些空格,比如
“City”
?通过
print(all_data.columns.tolist())检查它。。我得到:['\ufeffCity',Name',Country']。不确定这是什么\ufeff:(似乎是一个编码问题。)知道如何解决这个问题吗?我将标题的名称从City更改为其他名称,但无论如何都不起作用。是的,没错。将参数
encoding='utf-16'
添加到
read\u csv
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']