一列的值重复出现并更新另一列的值

2024-05-19 17:07:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我的数据集如下所示:

Country | ProductType 
USA     |    A        
China   |    B        
Japan   |    A        
Ireland |    B        
France  |    A        

我需要复制每个国家的引用,并在ProductType列中指定相应的值,以便为每个国家提供产品a和产品B

我要找的是:

Country | ProductType
USA     | A
USA     | B
China   | A
China   | B
Japan   | A
Japan   | B
Ireland | A
Ireland | B
France  | A
France  | B

你有没有什么好主意?抱歉,标题太模糊了。 干杯:)


Tags: 数据标题产品国家country主意chinausa
3条回答

您可以尝试使用itertools中的product使用构造函数构建一个新的datafame

from itertools import product
pd.DataFrame(product(df['Country'].unique(), df['ProductType'].unique()), columns=['Country','ProductType'])

输出:

   Country ProductType
0      USA           A
1      USA           B
2    China           A
3    China           B
4    Japan           A
5    Japan           B
6  Ireland           A
7  Ireland           B
8   France           A
9   France           B

在熊猫中,你可以用MultiIndex

pd.MultiIndex.from_product(list(map(set,df.values.T.tolist()))).to_frame()
Out[1148]: 
                 0  1
France  A   France  A
        B   France  B
China   A    China  A
        B    China  B
Japan   A    Japan  A
        B    Japan  B
USA     A      USA  A
        B      USA  B
Ireland A  Ireland  A
        B  Ireland  B

使用pd.melt,如下所示:

df['A'] = 'A'
df['B'] = 'B'
pd.melt(df, id_vars='Country', value_vars=['A', 'B']).sort_values('Country')

相关问题 更多 >