我有两个名为df1和df2的数据帧。
DF1 =
col1 col2 count
0 1 36 200
1 12 15 200
2 13 17 100
DF2 =
product_id product_name
0 1 abc
1 2 xyz
2 3 aaaa
3 12 qwert
4 13 sed
5 15 qase
6 36 asdf
7 17 zxcv
col1和col2 中的条目是来自df2的 product_id。
我想创建一个新的数据框' df3',它包含以下列和条目。
DF3 =
col1 | col1_name | col2 | col2_name | count
0 1 | abc | 36 | asdf | 200
1 12 | qwert | 15 | qase | 200
2 13 | sed | 17 | zxcv | 100
即在col1_name
col2_name
product_id
等于df2
& col1
时添加col2
和df3 = pd.concat([df1, df2], axis=1)
struct GamePacket {
var action: String
var pointArray: [CGPoint]
}
值。
是否可以这样做:
GamePacket
我对Pandas df和Python的了解是初学者的。 有办法吗?提前谢谢。
答案 0 :(得分:3)
我认为您可以使用dict
生成的df2
map
,然后按sort_index
对列名进行排序:
d = df2.set_index('product_id')['product_name'].to_dict()
print (d)
{1: 'abc', 2: 'xyz', 3: 'aaaa', 36: 'asdf', 17: 'zxcv', 12: 'qwert', 13: 'sed', 15: 'qase'}
df1['col1_name'] = df1.col1.map(d)
df1['col2_name'] = df1.col2.map(d)
df1 = df1.sort_index(axis=1)
print (df1)
col1 col1_name col2 col2_name count
0 1 abc 36 asdf 200
1 12 qwert 15 qase 200
2 13 sed 17 zxcv 100
df1 = df1.drop(['col1','col2'], axis=1)
print (df1)
col1_name col2_name count
0 abc asdf 200
1 qwert qase 200
2 sed zxcv 100