Python 从大型表中检索数据

Python 从大型表中检索数据,python,pandas,split,Python,Pandas,Split,让我来描述一下这个任务:每一列代表一艘船(列的名称是一艘船的名称,行是容器)。船名的格式为nn:xxxxxx(TTT)。容器以aa-bb-CCCC/yyyy的形式表示/xx@ddddddddd.ee,其中bb是容器最终目的地的名称。我的任务是计算最终目的地为日本的集装箱数量,因此我必须从集装箱表单中检索bb并对其进行计数。我的想法是创建另一个表,该表将由函数split(以“-”作为拆分标题)创建,然后当bb位于单元格中时,只需添加+1即可对其进行计数。下面是一些代码: import pandas

让我来描述一下这个任务:每一列代表一艘船(列的名称是一艘船的名称,行是容器)。船名的格式为nn:xxxxxx(TTT)。容器以aa-bb-CCCC/yyyy的形式表示/xx@ddddddddd.ee,其中bb是容器最终目的地的名称。我的任务是计算最终目的地为日本的集装箱数量,因此我必须从集装箱表单中检索bb并对其进行计数。我的想法是创建另一个表,该表将由函数split(以“-”作为拆分标题)创建,然后当bb位于单元格中时,只需添加+1即可对其进行计数。下面是一些代码:

import pandas as pd

df = pd.read_csv("dane.csv", sep=';')

shape = list(df.shape)
for i in range(0, shape[0]):
    for j in range(0, shape[1]):
        obj = df.iloc[i, j].split('-')
我得到的回溯如下:

DtypeWarning: Columns (0,1,2,3,4,5,6,8,9,10,11,12,13,14,15,16,17,18,19,21,22,23,24,25,26,27,28,29,31,32,34,35,36,37,38,39,40,41,43,44,45,46,47,49,51,52,53,54,55,56,57,58) have mixed types. Specify dtype option on import or set low_memory=False.

我怎样才能改进它

输入文件,第1列的前5行:

1: Brandenburg (Post-Panamax)
ES-NL-10633096/1938/X1@hkzydbezon.dk/6749
BE-BR-61613986/3551/B1@oqk.bf/39927
PH-SA-39552610/2436/A1@venagi.hr/80578
PA-AE-59814691/4881/X1@zhicvzvksl.cl/25247

有些单元格是空的。

让我们用正则表达式来提取
值,然后计算
值,您可以过滤结果以获得正确的目的地

from io import StringIO

intxt = StringIO("""1: Brandenburg (Post-Panamax)
ES-NL-10633096/1938/X1@hkzydbezon.dk/6749
BE-BR-61613986/3551/B1@oqk.bf/39927
PH-SA-39552610/2436/A1@venagi.hr/80578
PA-AE-59814691/4881/X1@zhicvzvksl.cl/25247""")

df = pd.read_csv(intxt, names=['data'])

df['data'].str.extract('^[a-zA-z]{2}-([a-zA-Z]{2})')[0].value_counts()
输出:

AE    1
BR    1
SA    1
NL    1
Name: 0, dtype: int64

你能在这里包含输入文件的一部分吗。。。也许5行?@ScottBoston完成了。
AE    1
BR    1
SA    1
NL    1
Name: 0, dtype: int64