是否可以不迭代地以格式化的方式输出DataFrame ?



我有一个DataFrame,我想把数据嵌入到一个JavaScript可视化(这个来自Google Charts)。为了做到这一点,我想把内容嵌入到一个数组中。

[ 'A', 'X', 5 ],
[ 'B', 'X', 8 ]

sip的第一列。所以我可以映射它,还有其他的,dipbytes:

df["sip"].map(lambda st: "[ '" + str(st) + "', ") 
df["dip"].map(lambda st: "'" + str(st) + "', ") 
df["bytes"].map(lambda st: "'" + str(st) + "'], ") 

现在我有一种感觉,至少可以说这是次优的。我需要遍历行,并像这样映射3列的字符串,并连接结果字符串,并删除最后一个,

有更聪明的方法吗?我无法想象我是第一个需要像Pandas这样的JavaScript数组的人。

我认为你可以先通过valuesDataFrame转换为numpy array,然后再转换为list:

print (df)
  sip dip  bytes
0   A   X      5
1   B   X      8
L = df.values.tolist()
print (L)
[['A', 'X', 5], ['B', 'X', 8]]
print (type(L))
<class 'list'>

另一个方法是DataFrame.to_json:

s = df.to_json(orient='values')
print (s)
[["A","X",5],["B","X",8]]
print (type(s))
<class 'str'>