簡體   English   中英

從一個巨大的表中檢索數據

[英]Retrieving data from a huge table

讓我描述一下任務:每一列代表船(列的名稱是船的名稱,行是容器)。 船名的格式為 nn: xxxxxx (ttttttt)。 容器以 aa-bb-cccccccc/yyyy/xx@ddddddddd.ee 的形式表示,其中 bb 是容器的最終目的地的名稱。 我的任務是計算最終目的地是日本的集裝箱數量,所以我必須從集裝箱表格中檢索 bb 並計算它們。 我的想法是創建另一個表,該表將由 function 拆分(以“-”作為拆分標題)創建,然后在 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.

'float' object has no attribute 'split'

我該如何改進它?

輸入文件,第一列的前 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

有些單元格是空的。

讓我們使用extract然后value_counts的正則表達式,您可以過濾結果以獲得正確的目的地。

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()

Output:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM