对于我的教育学硕士论文,我想对互联网进行一个非常简化的模拟。我正在创建一个快速而肮脏的 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
。我完全不知所措,因为相同的附加方法似乎在之前的几个单元格中工作得很好。
首先,
append
被替换了,但是concat
。
其次,您需要在您的字典中使用 pd.DataFrame
。像这样:
def appendToNeighborDF(neighbor, ipAddress, latitude, longitude):
neighborNew = pd.concat([neighbor, pd.DataFrame({'ipAddress': ipAddress, 'latitude': latitude, 'longitude': longitude})])
return neighborNew