保留一些重复数据并添加到现有 python 数据框
Keeping some data from duplicates and adding to existing python dataframe
我有一个问题保留一些数据不重复,并想将有价值的信息添加到数据框中的新列。
import pandas as pd
data = {'id':[1,1,2,2,3],'key':[1,1,2,2,1],'value0':['a', 'b', 'x', 'y', 'a']}
frame = pd.DataFrame(data, columns = ['id','key','value0'])
print frame
产量:
id key value0
0 1 1 a
1 1 1 b
2 2 2 x
3 2 2 y
4 3 1 a
期望的输出:
key value0_0 value0_1 value1_0
0 1 a b a
1 2 x y None
保留 "id" 列并不重要,但有助于迭代和分组。
我认为这可以适用于您不知道一组键有多少个值的其他项目。
set_index
包括 cumcount
和 unstack
frame.set_index(
['key', frame.groupby('key').cumcount()]
).value0.unstack().add_prefix('value0_').reset_index()
key value0_0 value0_1 value0_2
0 1 a b a
1 2 x y None
我质疑您的列标签,但这是一种使用二进制的方法
frame.set_index(
['key', frame.groupby('key').cumcount()]
).value0.unstack().rename(
columns='{:02b}'.format
).add_prefix('value_').reset_index()
key value_00 value_01 value_10
0 1 a b a
1 2 x y None
我有一个问题保留一些数据不重复,并想将有价值的信息添加到数据框中的新列。
import pandas as pd
data = {'id':[1,1,2,2,3],'key':[1,1,2,2,1],'value0':['a', 'b', 'x', 'y', 'a']}
frame = pd.DataFrame(data, columns = ['id','key','value0'])
print frame
产量:
id key value0
0 1 1 a
1 1 1 b
2 2 2 x
3 2 2 y
4 3 1 a
期望的输出:
key value0_0 value0_1 value1_0
0 1 a b a
1 2 x y None
保留 "id" 列并不重要,但有助于迭代和分组。
我认为这可以适用于您不知道一组键有多少个值的其他项目。
set_index
包括 cumcount
和 unstack
frame.set_index(
['key', frame.groupby('key').cumcount()]
).value0.unstack().add_prefix('value0_').reset_index()
key value0_0 value0_1 value0_2
0 1 a b a
1 2 x y None
我质疑您的列标签,但这是一种使用二进制的方法
frame.set_index(
['key', frame.groupby('key').cumcount()]
).value0.unstack().rename(
columns='{:02b}'.format
).add_prefix('value_').reset_index()
key value_00 value_01 value_10
0 1 a b a
1 2 x y None