gpt4 book ai didi

python - 将行添加到带有列的空数据框中

转载 作者:太空宇宙 更新时间:2023-11-03 15:33:47 25 4
gpt4 key购买 nike

我正在使用 Pandas,想要将行添加到已建立列的空 DataFrame 中。

到目前为止我的代码看起来像这样......

def addRows(cereals,lines):
for i in np.arange(1,len(lines)):
dt = parseLine(lines[i])
dt = pd.Series(dt)
print(dt)
# YOUR CODE GOES HERE (add dt to cereals)
cereals.append(dt, ignore_index = True)
return(cereals)

但是,当我运行时...

cereals = addRows(cereals,lines)
cereals

数据帧返回时没有行,只有列。我不确定我做错了什么,但我很确定它与追加方法有关。有人知道我做错了什么吗?

最佳答案

您的代码未按预期运行的可能原因有两个:

  • cereals.append(dt,ignore_index = True) 没有按照您的想法行事。您正在尝试附加一个系列,而不是一个 DataFrame。

  • cereals.append(dt,ignore_index = True) 不会就地修改 cereals,因此当您返回它时,您将返回一个未更改的副本。等效函数如下所示:

--

>>> def foo(a):
... a + 1
... return a
...
>>> foo(1)
1

我还没有在我的机器上测试过这个,但我认为你的固定解决方案将如下所示:

def addRows(cereals, lines):
for i in np.arange(1,len(lines)):
data = parseLine(lines[i])
new_df = pd.DataFrame(data, columns=cereals.columns)
cereals = cereals.append(new_df, ignore_index=True)
return cereals

顺便说一句..我真的不知道线条来自哪里,但我至少会立即将其修改为如下所示:

data = [parseLine(line) for line in lines]
cereals = cereals.append(pd.DataFrame(data, cereals.columns), ignore_index=True)

How to add an extra row to a pandas dataframe

您还可以创建一个新的 DataFrame 并将该 DataFrame 附加到现有的 DataFrame 中。例如

>>> import pandas as pd
>>> empty_alph = pd.DataFrame(columns=['letter', 'index'])
>>> alph_abc = pd.DataFrame([['a', 0], ['b', 1], ['c', 2]], columns=['letter', 'index'])
>>> empty_alph.append(alph_abc)
letter index
0 a 0.0
1 b 1.0
2 c 2.0

正如我在链接中指出的,您还可以在 DataFrame 上使用 loc 方法:

>>> df = empty_alph.append(alph_abc)
>>> df.loc[df.shape[0]] = ['d', 3] // df.shape[0] just finds next # in index
letter index
0 a 0.0
1 b 1.0
2 c 2.0
3 d 3.0

关于python - 将行添加到带有列的空数据框中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42701570/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com