寻找一种解决方案,将以列表格式存储的数字和浮点元素添加到数据框中的一列中
Looking for a solution to add numeric and float elements stored in list format in one of the columns in dataframe
| Index | col1 |
| -------- | -------------- |
| 0 | [0,0] |
| 2 | [7.9, 11.06] |
| 3 | [0.9, 4] |
| 4 | NAN |
我有类似的数据 this.I 想添加列表的元素并将其存储在其他列中,例如使用循环的总数,这样输出如下所示:
| Index | col1 |Total |
| -------- | -------------- | --------|
| 0 | [0,0] |0 |
| 2 | [7.9, 11.06] |18.9 |
| 3 | [0.9, 4] |4.9 |
| 4 | NAN |NAN |
使用 apply
和 lambda
对列表求和,或者 return np.NA
如果值不是列表:
df['Total'] = df['col1'].apply(lambda x: sum(x) if isinstance(x, list) else pd.NA)
我尝试使用 df.fillna([])
,但列表不是 fillna 的有效参数。
编辑:考虑使用笨拙的数组而不是列表:https://awkward-array.readthedocs.io/en/latest/
在地图中使用 na_action
参数也应该有效:
df['Total'] = df['col1'].map(sum,na_action='ignore')
| Index | col1 |
| -------- | -------------- |
| 0 | [0,0] |
| 2 | [7.9, 11.06] |
| 3 | [0.9, 4] |
| 4 | NAN |
我有类似的数据 this.I 想添加列表的元素并将其存储在其他列中,例如使用循环的总数,这样输出如下所示:
| Index | col1 |Total |
| -------- | -------------- | --------|
| 0 | [0,0] |0 |
| 2 | [7.9, 11.06] |18.9 |
| 3 | [0.9, 4] |4.9 |
| 4 | NAN |NAN |
使用 apply
和 lambda
对列表求和,或者 return np.NA
如果值不是列表:
df['Total'] = df['col1'].apply(lambda x: sum(x) if isinstance(x, list) else pd.NA)
我尝试使用 df.fillna([])
,但列表不是 fillna 的有效参数。
编辑:考虑使用笨拙的数组而不是列表:https://awkward-array.readthedocs.io/en/latest/
在地图中使用 na_action
参数也应该有效:
df['Total'] = df['col1'].map(sum,na_action='ignore')