【问题标题】:Adding a Row in a dataset.csv file through using pandas in python通过在 python 中使用 pandas 在 dataset.csv 文件中添加一行
【发布时间】:2022-01-24 08:58:53
【问题描述】:

我已经尝试过 .append 方法。代码是正确的,但它没有做任何事情。 我的 .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]

【问题讨论】:

  • add = {'Column1': ['380.76885']} data2 = pd.DataFrame(add) dataArr = ARP_MitM_dataset labelArr = label dataArr.append(data2, ignore_index = True, sort = False) dataArr

标签: python pandas csv


【解决方案1】:

您永远不应该增长 DataFrame。始终将数据附加到列表并在最后将其转换为 DataFrame,因为:-

1.) 追加到列表并一次性创建 DataFrame 总是更便宜/更快。

2.) 列表占用的内存更少,并且是一种更轻量的数据结构,可以使用、追加和删除。

3.) dtypes 会自动推断您的数据。另一方面,创建一个空的 NaN 框架会自动使它们成为对象,这很糟糕。

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'])

【讨论】:

  • 我的数据集中有 2504266 行 × 115 列
  • 我只想再添加一行,总共有 2504267 行
  • 请检查我编辑的答案
  • 我以这种方式这样做仍然无法正常工作。
  • @Gee 如果您的数据不敏感,能否提供指向您的数据集的链接?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-11
  • 2013-07-23
  • 2018-05-20
  • 2011-01-03
  • 1970-01-01
相关资源
最近更新 更多