繁体   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