追加到 Dataframe 内的 Dataframe 会导致 nan

问题描述 投票:0回答:1

对于我的教育学硕士论文,我想对互联网进行一个非常简化的模拟。我正在创建一个快速而肮脏的 python 文件来为 AS 创建 JSON 文件。 为了创建,我有一个数据框

nodes
,其中包含一列
neighbors
,它本身就是一个数据框。它包含一个 ip 地址、一个纬度和一个经度。我想在内部数据帧内的给定索引处追加一行。

我写了一个函数:

def appendToNeighborDF(neighbor, ipAddress, latitude, longitude):
    neighborNew = neighbor.append({'ipAddress': ipAddress, 'latitude': latitude, 'longitude': longitude}, ignore_index=True)
    return neighborNew

我使用此函数通过

附加到特定索引处的邻居列
nodes.at[index, 'neighbors'] = appendToNeighborDF(nodes.at[index, 'neighbors'], secondNode.ipAddress, secondNode.latitude, secondNode.longitude)

然而,这并没有奏效。当我在附加之前打印

nodes.at[index, 'neighbors']
时,它具有正确的格式。当我在函数内打印
neighborNew
时,它也正是我想要的。然而,当我在附加而不是整个数据框后打印
nodes.at[index, 'neighbors']
时,我只得到
nan
。我完全不知所措,因为相同的附加方法似乎在之前的几个单元格中工作得很好。

python pandas dataframe
1个回答
0
投票

首先,

append
被替换了,但是
concat
。 其次,您需要在您的字典中使用
pd.DataFrame
。像这样:

def appendToNeighborDF(neighbor, ipAddress, latitude, longitude):
    neighborNew = pd.concat([neighbor, pd.DataFrame({'ipAddress': ipAddress, 'latitude': latitude, 'longitude': longitude})])
    return neighborNew
© www.soinside.com 2019 - 2024. All rights reserved.