Python 是否有可能在phython中使用更大的列表?

Python 是否有可能在phython中使用更大的列表?,python,pandas,Python,Pandas,对于学校,我必须做一个关于wifisignals的项目,我正在尝试将数据放在一个数据框中。 共有208.000行数据。 当涉及到下面的代码时,代码并不完整。代码就像卡在无限循环中一样。 但当我只使用1000行时,我的程序就可以运行了。因此,如果可能的话,我认为我的清单太小了。 phython中是否存在更大的列表?还是因为我使用了糟糕的编码? 提前谢谢 编辑1: (数据是原始数据帧,wifiinfo是原始数据帧的一列) 我有以下格式: df=pd.DataFrame(列=['Sender'、'Ti

对于学校,我必须做一个关于wifisignals的项目,我正在尝试将数据放在一个数据框中。 共有208.000行数据。 当涉及到下面的代码时,代码并不完整。代码就像卡在无限循环中一样。 但当我只使用1000行时,我的程序就可以运行了。因此,如果可能的话,我认为我的清单太小了。 phython中是否存在更大的列表?还是因为我使用了糟糕的编码? 提前谢谢

编辑1: (数据是原始数据帧,wifiinfo是原始数据帧的一列) 我有以下格式:

df=pd.DataFrame(列=['Sender'、'Time'、'Date'、'Place'、'X'、'Y'、'bezeting'、'SSID'、'BSSID'、'Signal']
我试图从
WifiInfo
列中填充
SSID
BSSID
Signal
,为此,我必须拆分数据

这是1 WifiInfo的外观:

for index, row in data.iterrows():
    bezettingList = list()
    ssidList = list()
    bssidList = list()
    signalList = list()

    #WifiInfo splitting  
    wifis = row.WifiInfo.split(',')
    for wifi in wifis:
        #split wifi and add to List
        ssid, bssid = wifi.split('@')
        bssid, signal = bssid.split(':')
        ssidList.append(ssid)
        bssidList.append(bssid)
        signalList.append(int(signal))

    #add bezettingen to List 
    bezettingen = row.Bezetting.split(',')
    for bezetting in bezettingen:
        bezettingList.append(bezetting) 

    #add list to dataframe
    df.loc[index,'SSID'] = ssidList
    df.loc[index,'BSSID'] = bssidList
    df.loc[index,'Signal'] = signalList
    df.loc[index,'Bezetting'] = bezettingList

df.head()
ODISEE@88-1d-fc-41-dc-50:-83,ODISEE@88-1d-fc-2c-c0-00:-72,ODISEE@88-1d-fc-41-d2-d0:-82,CiscoC5976@58-6d-8f-19-14-38:-78,CiscoC5959@58-6d-8f-19-13-f4:-93,SNB@c8-d7-19-6f-be-b7:-99,ODISEE@88-1d-fc-2c-c5-70:-94,HackingDemo@58-6d-8f-19-11-48:-156,ODISEE@88-1d-fc-30-d4-40:-85,ODISEE@88-1d-fc-41-ac-50:-100
我目前的做法是:

for index, row in data.iterrows():
    bezettingList = list()
    ssidList = list()
    bssidList = list()
    signalList = list()

    #WifiInfo splitting  
    wifis = row.WifiInfo.split(',')
    for wifi in wifis:
        #split wifi and add to List
        ssid, bssid = wifi.split('@')
        bssid, signal = bssid.split(':')
        ssidList.append(ssid)
        bssidList.append(bssid)
        signalList.append(int(signal))

    #add bezettingen to List 
    bezettingen = row.Bezetting.split(',')
    for bezetting in bezettingen:
        bezettingList.append(bezetting) 

    #add list to dataframe
    df.loc[index,'SSID'] = ssidList
    df.loc[index,'BSSID'] = bssidList
    df.loc[index,'Signal'] = signalList
    df.loc[index,'Bezetting'] = bezettingList

df.head()

IIUC,首先需要用逗号分解该行,以便:

SSID BSSID信号WifiInfo
0楠楠楠楠楠ODISEE@88-1d-fc-41-dc-50:-83,ODISEE@88- ...
变成这样:

SSID BSSID信号WifiInfo
0楠楠楠楠楠ODISEE@88-1d-fc-41-dc-50:-83
1楠楠楠楠楠楠ODISEE@88-1d-fc-2c-c0-00:-72
2楠楠楠楠楠ODISEE@88-1d-fc-41-d2-d0:-82
3楠楠楠楠楠CiscoC5976@58-6d-8f-19-14-38:-78
4楠楠楠楠楠CiscoC5959@58-6d-8f-19-13-f4:-93
5楠楠楠楠楠SNB@c8-d7-19-6f-be-b7:-99
6楠楠楠楠楠ODISEE@88-1d-fc-2c-c5-70:-94
7楠楠楠楠楠HackingDemo@58-6d-8f-19-11-48:-156
8楠楠楠楠楠ODISEE@88-1d-fc-30-d4-40:-85
9楠楠楠楠楠ODISEE@88-1d-fc-41-ac-50:-100
#使用`.分解`
data=data.assign(WifiInfo=data.WifiInfo.str.split(',')).explode('WifiInfo'))
现在您可以使用
.str.extract

data['SSID']=data['WifiInfo'].str.extract(r'(.*)@')
数据['BSSID']=data['WifiInfo'].str.extract(r'@(.*):'))
数据['Signal']=data['WifiInfo'].str.extract(r':(.*))
SSID BSSID信号WifiInfo
0见88-1d-fc-41-dc-50-83ODISEE@88-1d-fc-41-dc-50:-83
1见88-1d-fc-2c-c0-00-72ODISEE@88-1d-fc-2c-c0-00:-72
2见88-1d-fc-41-d2-d0-82ODISEE@88-1d-fc-41-d2-d0:-82
3 CiscoC5976 58-6d-8f-19-14-38-78CiscoC5976@58-6d-8f-19-14-38:-78
4 CISCOC5958-6d-8f-19-13-f4-93CiscoC5959@58-6d-8f-19-13-f4:-93
5 SNB c8-d7-19-6f-be-b7-99SNB@c8-d7-19-6f-be-b7:-99
6见88-1d-fc-2c-c5-70-94ODISEE@88-1d-fc-2c-c5-70:-94
7黑客演示58-6d-8f-19-11-48-156HackingDemo@58-6d-8f-19-11-48:-156
8见88-1d-fc-30-d4-40-85ODISEE@88-1d-fc-30-d4-40:-85
9见88-1d-fc-41-ac-50-100ODISEE@88-1d-fc-41-ac-50:-100

如果要在列分解后对数据进行分组,我首先为每组条目分配一个ID:

data['Group']=pd.factorize(data['WifiInfo'])[0]+1
SSID BSSID信号WifiInfo组
0楠楠楠楠楠ODISEE@88-1d-fc-41-dc-50:-83,ODISEE@88- ...  1.
1楠楠楠楠楠楠ASD@22-1d-fc-41-dc-50:-83,QWERTY@88-    ...  2.
#分解列后
SSID BSSID信号WifiInfo组
ODISEE 88-1d-fc-41-dc-50-83ODISEE@88-1d-fc-41-dc-50:-83 1
ODISEE 88-1d-fc-2c-c0-00-72ODISEE@88-1d-fc-2c-c0-00:-72 1
...
...
ASD 22-1d-fc-41-dc-50-83ASD@88-1d-fc-41-dc-50:-83 2
QWERTY 88-1d-fc-2c-c0-00-72QWERTY@88-1d-fc-2c-c0-00:-72 2

IIUC,首先需要用逗号分解该行,以便:

SSID BSSID信号WifiInfo
0楠楠楠楠楠ODISEE@88-1d-fc-41-dc-50:-83,ODISEE@88- ...
变成这样:

SSID BSSID信号WifiInfo
0楠楠楠楠楠ODISEE@88-1d-fc-41-dc-50:-83
1楠楠楠楠楠楠ODISEE@88-1d-fc-2c-c0-00:-72
2楠楠楠楠楠ODISEE@88-1d-fc-41-d2-d0:-82
3楠楠楠楠楠CiscoC5976@58-6d-8f-19-14-38:-78
4楠楠楠楠楠CiscoC5959@58-6d-8f-19-13-f4:-93
5楠楠楠楠楠SNB@c8-d7-19-6f-be-b7:-99
6楠楠楠楠楠ODISEE@88-1d-fc-2c-c5-70:-94
7楠楠楠楠楠HackingDemo@58-6d-8f-19-11-48:-156
8楠楠楠楠楠ODISEE@88-1d-fc-30-d4-40:-85
9楠楠楠楠楠ODISEE@88-1d-fc-41-ac-50:-100
#使用`.分解`
data=data.assign(WifiInfo=data.WifiInfo.str.split(',')).explode('WifiInfo'))
现在您可以使用
.str.extract

data['SSID']=data['WifiInfo'].str.extract(r'(.*)@')
数据['BSSID']=data['WifiInfo'].str.extract(r'@(.*):'))
数据['Signal']=data['WifiInfo'].str.extract(r':(.*))
SSID BSSID信号WifiInfo
0见88-1d-fc-41-dc-50-83ODISEE@88-1d-fc-41-dc-50:-83
1见88-1d-fc-2c-c0-00-72ODISEE@88-1d-fc-2c-c0-00:-72
2见88-1d-fc-41-d2-d0-82ODISEE@88-1d-fc-41-d2-d0:-82
3 CiscoC5976 58-6d-8f-19-14-38-78CiscoC5976@58-6d-8f-19-14-38:-78
4 CISCOC5958-6d-8f-19-13-f4-93CiscoC5959@58-6d-8f-19-13-f4:-93
5 SNB c8-d7-19-6f-be-b7-99SNB@c8-d7-19-6f-be-b7:-99
6见88-1d-fc-2c-c5-70-94ODISEE@88-1d-fc-2c-c5-70:-94
7黑客演示58-6d-8f-19-11-48-156HackingDemo@58-6d-8f-19-11-48:-156
8见88-1d-fc-30-d4-40