python - 如何列出行值并在 DataFrame 中添加为新列?
问题描述
我有一个数据集如下:
data = {"C1": [0.98, 1.10], "C2": [1.25, 0.99],
"C3": [1.3, 1.41], "C4": [1.00, .99] }
data = pd.DataFrame(data)
C1 C2 C3 C4
0 0.98 1.25 1.30 1.00
1 1.10 0.99 1.41 0.99
我想要一个新列,它是list
同一行中所有数字的一个。所以我想要的输出如下:
C1 C2 C3 C4 New_Column
0 0.98 1.25 1.30 1.00 [0.98, 1.25, 1.30, 1.00]
1 1.10 0.99 1.41 0.99 [1.10, 0.99, 1.41, 0.99]
我已经开发了以下代码:
data["New_Column"] = np.nan
def create_list_of_numbers(data):
for i in range(len(data)-1):
print(data.iloc[i,:4].values) # Gives the list of values of first four columns
data.iloc[i,dt.columns.get_loc("New_Column")] = data.iloc[i,:4].values
return data
我收到以下错误:“ValueError:使用序列设置数组元素。”
即使这个函数有效,我认为应该有一种使用apply
函数的方法,这样我就可以摆脱这个循环。
解决方案
您可以list
沿轴 1(索引)将构造函数作为聚合函数传递
data['New_column'] = data.agg(list, axis=1)
输出:
C1 C2 C3 C4 New_column
0 0.98 1.25 1.30 1.00 [0.98, 1.25, 1.3, 1.0]
1 1.10 0.99 1.41 0.99 [1.1, 0.99, 1.41, 0.99]
推荐阅读
- python-2.7 - 用bs4(美丽的汤)python 2.7问题抓取网站
- c# - 连接超时 SQL c#
- javascript - 无法读取未定义 JavaScript 的属性
- ios - 按钮单击导航到 DetailView 在 SwiftUI 中不起作用
- machine-learning - 在 PyTorch 中使用 DataLoaders 进行 k 折交叉验证
- android - 如何获得firebase android studio的所有子项
- apache-spark - 通过 Spark SQL 实现 `collect_list`
- laravel - 无法使用 vuejs 添加用户照片
- node.js - 根据创建日期从集合中查找对象
- jquery - 无法设置未定义的属性“url”