python - Pandas 数据框列的值作为列表

标签 python pandas numpy dataframe

我正在从如下列表中的字典创建数据框:

[{'points': [-9.3613566605198262, 4.0910018605047171, -9.3473134841172731, 4.0960021770649475], 'uid': 0},
 {'points': [-9.4687215264026712, 4.0132947848279499, -9.3641925245477857, 4.0159059337303784], 'uid': 1},

上面是一个叫做l1的列表

对于数据框:

df = pd.DataFrame.from_records(l1)

这将创建以下 df:

   points                                          uid                                
0  [-9.3613566605198262, 4.09100186050......]      0
1  [-9.4687215264026712, 4.01329478482......]      1

我想知道如何从点列中删除列表格式/方括号,它应该包含简单的逗号分隔值。

另外,如何限制小数点后两位数?

我尝试了以下方法,但它不起作用。

np.round(df, 2)

df.round({'points':2}) 

预期的 df

   points                      uid
0  -9.36, 4.09, -9.34, 4.09    0
1  -9.46, 4.01, -9.36, 4.01    1

最佳答案

使用 apply 将列表中的数字四舍五入,然后拼接成一个字符串。

df['points'] = df.apply(lambda x: ', '.join(str(round(e,2)) for e in x.points),axis=1)

df
Out[1042]: 
                     points  uid
0   -9.36, 4.09, -9.35, 4.1    0
1  -9.47, 4.01, -9.36, 4.02    1

关于python - Pandas 数据框列的值作为列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44448102/

相关文章:

python - 值错误 : "too many values to unpack" when plotting with Sage

python - 分解 DataFrame 中具有多个值的单元格

python - 如何在Python中解决这个 'transpose'?

python - 沿任意轴连接未知维度的numpy数组

python - 用numpy找到与中位数最大差异的索引

python - 如果输入是元组,numpy 数组是否会丢失维度?

python - key_name 中包含哪些字符?

python - 在具有非唯一元素的列上合并具有不同大小的 Pandas 数据框

Python/Pandas - 基于多个变量和 if/elif/else 函数创建新变量

python - 如何使用 Sympy NumPy 打印机?