Pandas 根据不同的列值创建新列

库尔菲

我有一个数据框,其中有三列:

  • 模块
  • 固件版本
  • Óv_姓名

其中 Columnmodule具有三个不同的值,每个值都有其FW_Version和 ÒV_name`

我期待为这三个不同的值创建一个新列并打印FW_Version下面的列,但应该与 ÒV_name` 对齐,如预期输出所示。

数据框:

import pandas as pd
pd.set_option('display.max_rows', None)
pd.set_option('display.max_columns', None)
pd.set_option('display.width', None)
pd.set_option('expand_frame_repr', True)
#################################################################

df = pd.read_csv("InterconnectsReport_New.csv")
df = df.rename(columns={'Product Name': 'Modules',  'Firmware Version': 'FW_Version', 'Appliance': 'Óv_Name' })

df = df.drop(['Device Name', 'Enclosure'], axis=1)
#print(df['Modules'].unique())
print(df)

                                           Modules  FW_Version                       Óv_Name
0            Synergy 20Gb Interconnect Link Module        1.17                        ov1001
1            Synergy 20Gb Interconnect Link Module        1.17                        ov1001
2            Synergy 20Gb Interconnect Link Module        1.17                        ov1001
3    Virtual Connect SE 40Gb F8 Module for Synergy  1.4.2.1005                        ov1001
4    Virtual Connect SE 40Gb F8 Module for Synergy  1.4.2.1005                        ov1001
5            Synergy 20Gb Interconnect Link Module        1.17                        ov1001
6            Synergy 20Gb Interconnect Link Module        1.17                        ov1002
7            Synergy 20Gb Interconnect Link Module        1.17                        ov1002
8            Synergy 20Gb Interconnect Link Module        1.17                        ov1002
9    Virtual Connect SE 40Gb F8 Module for Synergy  1.4.2.1005                        ov1002
10   Virtual Connect SE 40Gb F8 Module for Synergy  1.4.2.1005                        ov1002
11           Synergy 20Gb Interconnect Link Module        1.17                        ov1002
18           Synergy 20Gb Interconnect Link Module        1.18                        ov1004
19           Synergy 20Gb Interconnect Link Module        1.18                        ov1004
20           Synergy 20Gb Interconnect Link Module        1.18                        ov1004
21   Virtual Connect SE 40Gb F8 Module for Synergy  1.5.0.1004                        ov1004
22   Virtual Connect SE 40Gb F8 Module for Synergy  1.5.0.1004                        ov1004
23           Synergy 20Gb Interconnect Link Module        1.18                        ov1004
30           Synergy 20Gb Interconnect Link Module        1.18                        ov1006
31           Synergy 20Gb Interconnect Link Module        1.18                        ov1006
32           Synergy 20Gb Interconnect Link Module        1.18                        ov1006
33   Virtual Connect SE 40Gb F8 Module for Synergy  1.6.1.1002                        ov1006
34   Virtual Connect SE 40Gb F8 Module for Synergy  1.6.1.1002                        ov1006
35           Synergy 20Gb Interconnect Link Module        1.18                        ov1006
36           Synergy 20Gb Interconnect Link Module        1.17                        ov2001
37   Virtual Connect SE 40Gb F8 Module for Synergy  1.4.2.1005                        ov2001
38           Synergy 20Gb Interconnect Link Module        1.17                        ov2001
39           Synergy 20Gb Interconnect Link Module        1.17                        ov2001
40   Virtual Connect SE 40Gb F8 Module for Synergy  1.4.2.1005                        ov2001
41           Synergy 20Gb Interconnect Link Module        1.17                        ov2001
42           Synergy 20Gb Interconnect Link Module        1.17                        ov2002
43           Synergy 20Gb Interconnect Link Module        1.17                        ov2002
44           Synergy 20Gb Interconnect Link Module        1.17                        ov2002
45   Virtual Connect SE 40Gb F8 Module for Synergy  1.4.2.1005                        ov2002
46   Virtual Connect SE 40Gb F8 Module for Synergy  1.4.2.1005                        ov2002
47           Synergy 20Gb Interconnect Link Module        1.17                        ov2002
48   Virtual Connect SE 40Gb F8 Module for Synergy  1.4.2.1005                        ov2003
49           Synergy 20Gb Interconnect Link Module        1.17                        ov2003
50           Synergy 20Gb Interconnect Link Module        1.17                        ov2003
51   Virtual Connect SE 40Gb F8 Module for Synergy  1.4.2.1005                        ov2003
52           Synergy 20Gb Interconnect Link Module        1.17                        ov2003
53           Synergy 20Gb Interconnect Link Module        1.17                        ov2003
54   Virtual Connect SE 40Gb F8 Module for Synergy  1.4.2.1005                        ov2004
55           Synergy 20Gb Interconnect Link Module        1.17                        ov2004
56           Synergy 20Gb Interconnect Link Module        1.17                        ov2004
57   Virtual Connect SE 40Gb F8 Module for Synergy  1.4.2.1005                        ov2004
58           Synergy 20Gb Interconnect Link Module        1.17                        ov2004
59           Synergy 20Gb Interconnect Link Module        1.17                        ov2004
60   Virtual Connect SE 40Gb F8 Module for Synergy  1.4.2.1005                        ov2005
61           Synergy 20Gb Interconnect Link Module        1.17                        ov2005
62           Synergy 20Gb Interconnect Link Module        1.17                        ov2005
63   Virtual Connect SE 40Gb F8 Module for Synergy  1.4.2.1005                        ov2005
64           Synergy 20Gb Interconnect Link Module        1.17                        ov2005
65           Synergy 20Gb Interconnect Link Module        1.17                        ov2005

独特的价值:

以下是列的三个唯一值

'Synergy 20Gb Interconnect Link Module'
 'Virtual Connect SE 40Gb F8 Module for Synergy'
 'Synergy 12Gb SAS Connection Module'

预期的:

Óv_Name    Synergy 20Gb Interconnect Link Module   Virtual Connect SE 40Gb F8 Module for Synergy   Synergy 20Gb Interconnect Link Module                                   
ov1001     1.17                                    1.4.2.1005                                      1.17
耶斯列

使用DataFrame.drop_duplicatesDataFrame.pivot

df1 = (df.drop_duplicates(subset=['Modules', 'Óv_Name'])
         .pivot('Óv_Name', 'Modules', 'FW_Version'))

另一个想法,如果重复的 perÓv_Name, Modules具有相同的值,FW_Version则可能使用:

df2 = df.pivot_table(index='Óv_Name',
                     columns='Modules',
                     values='FW_Version', aggfunc='first')

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

根据 groupby 班次更改列的值并创建新列 - Pandas

Pandas:根据其他列的文本值创建新列

Pandas Implode 并根据列表值创建 2 个新列

python(pandas)基于来自不同行的值创建新列

根据列值创建列:Pandas

通过匹配不同列和不同行python pandas中的值来创建新列

从列的值创建新列-Pandas

如何根据数据框中列的值在 Pandas 中创建新列(pivot 或 unpivot ?)

Python Pandas根据另一个列值创建新列

使用 map() 时出错:根据另一列中的值创建新的 Pandas 列

Pandas 根据另一列的非空值创建一个新列

Pandas:根据另一列的文本值创建新列

根据python pandas中其他列的值创建新列

根据多列中的值和相同条件在pandas中创建一个新列

根据其他列中的值在python 3(pandas)数据框中创建新列

比较 2 个 pandas 数据框列并根据值是否相同创建新列

根据其他列上的值对列进行分组以在 Pandas 中创建新列

Pandas - 根据 str 包含从另一列创建带有值的新列

Pandas - 根据其他列的名称创建具有值的新列

Python pandas - groupby之后,如何根据其他列中的值创建新列

Pandas/Python:如何根据其他列的值创建新列并将额外条件应用于此新列

根据多个不同的条件在 pandas 数据框中创建了一个新列

根据不同条件在Pandas数据框中创建一个新列

Python Pandas:使用基于不同列中的分类值的计算创建新列

pandas Dataframe:根据其他列创建标签的新列

根据多个其他列的条件创建新的 pandas 列

根据 if 和现有列在 pandas 中创建新列

根据Pandas中以竖线分隔的列创建多个新列

根据其他列在Pandas DataFrame中创建新列