現在我在處理數據並將其轉換爲數據框時遇到了問題。基本上我試圖做的是閱讀第一處理非常大的數據幀
data = pd.read_csv(querylog, sep=" ", header=None)
的數據,那麼這組
query_group = data.groupby('Query')
ip_group = data.groupby('IP')
,並最後創建一個空白的數據幀映射他們的價值觀
df = pd.DataFrame(columns=query_group.groups, index=range(0, len(ip_group.groups)))
index = 0
for name, group in ip_group:
df.set_value(index, 'IP', name)
index += 1
df = df.set_index('IP')
for index, row in data.iterrows():
df.set_value(row['IP'], row['Query'], 1)
print(index)
df = df.fillna(0)
所以我問題是ip_group可能會上升到6000和的大小query_group最多400000這將導致在製作我的內存無法處理的非常大的空白數據框。任何人都可以幫助我解決這個問題嗎?任何幫助表示讚賞。數據
樣品數據幀是這樣
data = pd.DataFrame({ "Query" : ["google.com", "youtube.com", "facebook.com"],
"IP" : ["192.168.0.104", "192.168.0.103","192.168.0.104"] })
和我的預期輸出應該是這樣的
google.com youtube.com facebook.com
IP
192.168.0.104 1 0 1
192.168.0.103 0 1 0
是有一個特殊的原因,你正在使用df.set_value填寫你DF在循環()代替使用數據集/面板/系列? – MaxU
您可以添加數據幀「數據」的樣本嗎? – jezrael
@MaxU這是我可以想到的第一個解決方案,因爲get_dummies也會導致內存錯誤。任何你可以提供的解決方案非常感謝。 –