簡體   English   中英

通過在 python 中使用 pandas 在數據集中添加行

[英]Adding a Row in a dataset.csv file through using pandas in python

我試過了。append 方法。 代碼是正確的,但它沒有做任何事情。 my.csv 太大而無法打開,我無法物理添加,所以請如果有人可以解決我的問題,請回答:

Code:

import pandas as pd

ARP_MitM_dataset = pd.read_csv('/content/drive/MyDrive/ARP MitM_dataset-002.csv');
label = pd.read_csv('/content/drive/MyDrive/ARP MitM_labels.csv');


t = iter(range(1, 401))
ARP_MitM_dataset.columns = ['Column'+str(i).format(next(t)) if 1 <= i <= 499 else x for i, x in enumerate(ARP_MitM_dataset.columns, 1)]

dataArr = ARP_MitM_dataset

labelArr = label

dataArr.append({' ':2504267}, ignore_index = True)  <------ Check

from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(dataArr,labelArr, test_size = 0.40, random_state = 42)  <--- Error

print(X_train.shape,y_train.shape)

print(X_test.shape,y_test.shape)

Error Showing:

ValueError:發現樣本數量不一致的輸入變量:[2504266、2504267]

你永遠不應該種植 DataFrame。 始終 append 將您的數據轉換為列表並在最后將其轉換為 DataFrame 因為:-

1.) 將 append 列在一個列表中並在一個 go 中創建一個 DataFrame 總是更便宜/更快。

2.) 列表占用更少的 memory 並且是一個更輕的數據結構,可以使用 append 和刪除。

3.) dtypes會自動為您的數據推斷。 另一方面,創建一個空的 NaN 框架會自動使它們成為 object,這很糟糕。

4.) 系統會自動為您創建一個索引,而不是您必須小心為要附加的行分配正確的索引。

你可以嘗試這樣的事情: -

data = []
for a, b, c in some_function_that_yields_data():
    data.append([a, b, c])

df = pd.DataFrame(data, columns=['A', 'B', 'C'])

暫無
暫無

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

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