什么是最简单的方法(数据框):
Project Folder Owner value1 values2
A B C 100 200
A B C 500 400
D E F 100 200
D E F 300 400
到此:
referenceID value1 values2
1 100 200
1 500 400
2 100 200
2 300 400
和第二个数据框:
referenceID Project Folder Owner
1 A B C
2 D E F
我虽然使用标签编码器,但这需要我连接"项目,文件夹和所有者"进入一个新的领域 - 只要我保留了这些东西,这是好的,但似乎是额外的不必要的工作。
答案 0 :(得分:0)
您可以使用项目,文件夹和所有者在原始文件上创建第二个具有groupby的数据框。然后创建索引的唯一值列表,并将其提供给新的数据帧。假设您的原始数据位于名为df:
的数据框中 <plugin>
<groupId>org.wildfly.plugins</groupId>
<artifactId>wildfly-maven-plugin</artifactId>
<version>1.1.0.Alpha8</version>
</plugin>
结果将如下所示(您想要的第二个数据帧):
mvn wildfly:deploy
答案 1 :(得分:0)
这将生成您正在寻找的输出。
m = [['A', 'B', 'C', 100, 200],
['A', 'B', 'C', 500, 400],
['D', 'E', 'F', 100, 200],
['D', 'E', 'F', 300, 400]]
owner = {}
for row in m:
key = tuple(row[:3])
if key in owner:
owner[key].append(row[3:])
else:
owner[key] = [row[3:]]
frame1 = []
frame2 = []
for i, key in enumerate(owner):
frame2.append([i] + list(key))
for row in owner[key]:
frame1.append([i] + list(row))
print frame1
print frame2
答案 2 :(得分:-1)
要选择列,如果您知道列的编号,请使用内置调用,否则使用%timeit df.loc[:,['value1','values2']]
out: 1000 loops, best of 3: 602 µs per loop
%timeit df[[3,4]]
out: 1000 loops, best of 3: 295 µs per loop
%timeit df.ix[:,['value1','values2']]
1000 loops, best of 3: 412 µs per loop
方法:
df.groupby(['Project','Folder','Owner'],as_index = False).sum().drop(['value1','values2'],1)
至于groupby,只需使用groupby:
window.addEventListener("scroll", function(event) {
var top, green, red, yellow;
top = this.scrollY;
green = document.querySelector("#green"),
red = document.querySelector("#red"),
yellow= document.querySelector("#yellow");
if(top > 100){
green.classList.add("green", "active");
red.classList.add("red", "active");
yellow.classList.add("yellow", "active");
}
}, false);