首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pandas解析文本数据并分配列

Pandas解析文本数据并分配列
EN

Stack Overflow用户
提问于 2020-06-27 21:34:08
回答 2查看 50关注 0票数 1

我有下面的文本数据,我想用pandas将其解析成列数据。我需要每四行有四列。

My trial输出中,我们需要将VC_VERSION拆分为VC_ACTIVE_VERSIONVC_STANDBY_VERSION

原始数据:

代码语言:javascript
复制
========= enc1001 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.50
  2 HP VC Flex-10/10D Module   4.50
========= enc1002 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.50
  2 HP VC Flex-10/10D Module   4.50
========= enc1003 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.50
  2 HP VC Flex-10/10D Module   4.50
========= enc1004 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.50
  2 HP VC Flex-10/10D Module   4.50
========= enc1005 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.50
  2 HP VC Flex-10/10D Module   4.50
========= enc1006 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.50
  2 HP VC Flex-10/10D Module   4.50
========= enc1007 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.50
  2 HP VC Flex-10/10D Module   4.50
========= enc1008 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.40
  2 HP VC Flex-10/10D Module   4.40
========= enc1009 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.50
  2 HP VC Flex-10/10D Module   4.50
========= enc2001 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.50
  2 HP VC Flex-10/10D Module   4.50
========= enc2002 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.50
  2 HP VC Flex-10/10D Module   4.50
========= enc2003 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.50
  2 HP VC Flex-10/10D Module   4.50
========= enc2004 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.50
  2 HP VC Flex-10/10D Module   4.50
========= enc2005 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.50
  2 HP VC Flex-10/10D Module   4.50
========= enc2006 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.50
  2 HP VC Flex-10/10D Module   4.50
========= enc2007 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.50
  2 HP VC Flex-10/10D Module   4.50
========= enc2008 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.50
  2 HP VC Flex-10/10D Module   4.50
========= enc2009 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.50
  2 HP VC Flex-10/10D Module   4.50
========= enc2011 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.50
  2 HP VC Flex-10/10D Module   4.50
========= enc2013 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.50
  2 HP VC Flex-10/10D Module   4.50
========= enc3020 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.41
  2 HP VC Flex-10/10D Module   4.41
========= enc3021 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.41
  2 HP VC Flex-10/10D Module   4.41
========= enc3022 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.41
  2 HP VC Flex-10/10D Module   4.41
========= enc3026 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.45
  2 HP VC Flex-10/10D Module   4.45
========= enc3027 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.50
  2 HP VC Flex-10/10D Module   4.50
========= enc3028 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.50
  2 HP VC Flex-10/10D Module   4.50
========= enc3029 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.50
  2 HP VC Flex-10/10D Module   4.50
========= enc3030 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.50
  2 HP VC Flex-10/10D Module   4.50
========= enc3031 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.50
  2 HP VC Flex-10/10D Module   4.50
========= enc4021 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.41
  2 HP VC Flex-10/10D Module   4.41
========= enc4023 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.41
  2 HP VC Flex-10/10D Module   4.41
========= enc4024 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.41
  2 HP VC Flex-10/10D Module   4.41
========= enc4025 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.41
  2 HP VC Flex-10/10D Module   4.41
========= enc4026 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.50
  2 HP VC Flex-10/10D Module   4.50
========= enc4027 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.50
  2 HP VC Flex-10/10D Module   4.50
========= enc4028 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.50
  2 HP VC Flex-10/10D Module   4.50
========= enc4029 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.50
  2 HP VC Flex-10/10D Module   4.50
========= enc4030 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.50
  2 HP VC Flex-10/10D Module   4.50
========= enc4031 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.50
  2 HP VC Flex-10/10D Module   4.50
========= enc4032 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.50
  2 HP VC Flex-10/10D Module   4.50
========= enc4033 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.50
  2 HP VC Flex-10/10D Module   4.50
========= enc4034 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.50
  2 HP VC Flex-10/10D Module   4.50
========= enc6002 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.60
========= enc6011 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.60
========= enc6012 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.60
========= enc6013 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.60
========= enc6014 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.60
========= enc6015 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.60
========= enc6016 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.60
========= enc6017 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.60
========= enc7002 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
========= enc7003 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
========= enc7004 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
========= enc7009 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.50
  2 HP VC Flex-10/10D Module   4.50
========= enc1010 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.50
  2 HP VC Flex-10/10D Module   4.50
========= enc1011 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.50
  2 HP VC Flex-10/10D Module   4.50
========= enc1012 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.50
  2 HP VC Flex-10/10D Module   4.50
========= enc1013 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.50
  2 HP VC Flex-10/10D Module   4.50
========= enc1014 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.50
  2 HP VC Flex-10/10D Module   4.50
========= enc1015 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.50
  2 HP VC Flex-10/10D Module   4.50
========= enc1016 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.50
  2 HP VC Flex-10/10D Module   4.50
========= enc1017 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.50
  2 HP VC Flex-10/10D Module   4.50
========= enc1018 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.50
  2 HP VC Flex-10/10D Module   4.50
========= enc1025 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.62
  2 HP VC Flex-10/10D Module   4.62
========= enc1026 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.50
  2 HP VC Flex-10/10D Module   4.50
========= enc2010 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.50
  2 HP VC Flex-10/10D Module   4.50
========= enc2012 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.50
  2 HP VC Flex-10/10D Module   4.50
========= enc2014 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.50
  2 HP VC Flex-10/10D Module   4.50
========= enc2015 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.50
  2 HP VC Flex-10/10D Module   4.50
========= enc2016 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.50
  2 HP VC Flex-10/10D Module   4.50
========= enc2018 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.50
  2 HP VC Flex-10/10D Module   4.50
========= enc2019 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.50
  2 HP VC Flex-10/10D Module   4.50
========= enc2020 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.50
  2 HP VC Flex-10/10D Module   4.50
========= enc2021 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.50
  2 HP VC Flex-10/10D Module   4.50
========= enc2022 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.50
  2 HP VC Flex-10/10D Module   4.50
========= enc2023 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.50
  2 HP VC Flex-10/10D Module   4.50
========= enc3033 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.50
  2 HP VC Flex-10/10D Module   4.50
========= enc3034 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.50
  2 HP VC Flex-10/10D Module   4.50
========= enc3036 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.50
  2 HP VC Flex-10/10D Module   4.50
========= enc4020 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.41
  2 HP VC Flex-10/10D Module   4.41
========= enc4022 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.41
  2 HP VC Flex-10/10D Module   4.41
========= enc4035 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.50
  2 HP VC Flex-10/10D Module   4.50
========= enc7005 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.50
  2 HP VC Flex-10/10D Module   4.50
========= enc7006 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC FlexFabric 10Gb/24-Port Module  4.50
  2 HP VC FlexFabric 10Gb/24-Port Module  4.50
========= enc7007 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.62
  2 HP VC Flex-10/10D Module   4.62
========= enc7008 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.62
  2 HP VC Flex-10/10D Module   4.62
========= enc8001 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.50
  2 HP VC Flex-10/10D Module   4.50
========= enc8017 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.50
  2 HP VC Flex-10/10D Module   4.50
========= enc8018 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.50
  2 HP VC Flex-10/10D Module   4.50
========= enc8019 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.50
  2 HP VC Flex-10/10D Module   4.50
========= enc8021 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.50
  2 HP VC Flex-10/10D Module   4.50
========= enc8022 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.62
  2 HP VC Flex-10/10D Module   4.62
========= enc8023 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.62
  2 HP VC Flex-10/10D Module   4.62
========= enc8024 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.62
  2 HP VC Flex-10/10D Module   4.62
========= enc8025 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.62
  2 HP VC Flex-10/10D Module   4.62
========= enc8026 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.62
  2 HP VC Flex-10/10D Module   4.62
========= enc8027 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.62
  2 HP VC Flex-10/10D Module   4.62
========= enc8028 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.62
  2 HP VC Flex-10/10D Module   4.62
========= enc8033 =========
1   BladeSystem c7000 DDR2 Onboard Administrator with KVM 4.85
  1 HP VC Flex-10/10D Module   4.40
  2 HP VC Flex-10/10D Module   4.40

我的试验:

代码语言:javascript
复制
df  = pd.read_csv("file.txt", names=["col1"])
df = df.col1.str.split(' ', expand = True)
df = df.drop(df.columns[[0, 2, 3, 4, 5, 6, 7, 8, 11]], axis=1)

df = df.rename(columns={ 1: 'ENC_NAME', 9: 'VC_VERSION', 10: 'OA_VERSION'})

print(df)

       ENC_NAME VC_VERSION OA_VERSION
0    enc1001       None       None
1                   KVM       4.85
2                  4.50       None
3                  4.50       None
4    enc1002       None       None
5                   KVM       4.85
6                  4.50       None
7                  4.50       None
8    enc1003       None       None
9                   KVM       4.85
10                 4.50       None
11                 4.50       None
12   enc1004       None       None
13                  KVM       4.85
14                 4.50       None
15                 4.50       None
----------------- data snipped ---------------

所需:

代码语言:javascript
复制
   ENC_NAME OA_VERSION VC_ACTIVE VC_STDN
    enc1001       4.85      4.50    4.50
    enc1002       4.85      4.50    4.50
    enc1003       4.85      4.50    4.50
    enc1004       4.85      4.50    4.50
    enc1005       4.85      4.50    4.50
    enc1006       4.85      4.50    4.50
    enc1007       4.85      4.50    4.50
    enc1008       4.85      4.40    4.40
    enc1009       4.85      4.50    4.50
    enc2001       4.85      4.50    4.50
    enc2002       4.85      4.50    4.50
    enc2003       4.85      4.50    4.50

请帮助我们与熊猫相处。提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-06-28 00:39:02

下面的代码从标题行(带有=符号)中获取ENC_NAME,并从所有其他行中获取最后一个值(假设行按所需顺序排列)。然后,我们分配行号和列号以及轴心。

优点是它不依赖于数据中的空格数量。

代码语言:javascript
复制
df = pd.read_csv('file.txt', sep='\n',header=None, names=['col1'])

df['row'] = df.col1.str.contains('===').cumsum()
df['col'] = df.groupby('row').cumcount()
df['value'] = df.col1.str.extract('=== (.*) ===')
m = df.value.isna()
df.loc[m,'value'] = df.loc[m,'col1'].str.extract('(\d+\.\d+)$').values

df = df.pivot('row','col','value')
df.columns = ['ENC_NAME', 'OA_VERSION', 'VC_ACTIVE', 'VC_STDN']

结果:

代码语言:javascript
复制
    ENC_NAME OA_VERSION VC_ACTIVE VC_STDN
row                                      
1    enc1001       4.85      4.50    4.50
2    enc1002       4.85      4.50    4.50
3    enc1003       4.85      4.50    4.50
4    enc1004       4.85      4.50    4.50
5    enc1005       4.85      4.50    4.50
6    enc1006       4.85      4.50    4.50
7    enc1007       4.85      4.50    4.50
8    enc1008       4.85      4.40    4.40
9    enc1009       4.85      4.50    4.50
10   enc2001       4.85      4.50    4.50
11   enc2002       4.85      4.50    4.50
12   enc2003       4.85      4.50    4.50
13   enc2004       4.85      4.50    4.50
14   enc2005       4.85      4.50    4.50
15   enc2006       4.85      4.50    4.50
16   enc2007       4.85      4.50    4.50
17   enc2008       4.85      4.50    4.50
18   enc2009       4.85      4.50    4.50
19   enc2011       4.85      4.50    4.50
20   enc2013       4.85      4.50    4.50
21   enc3020       4.85      4.41    4.41
22   enc3021       4.85      4.41    4.41
23   enc3022       4.85      4.41    4.41
24   enc3026       4.85      4.45    4.45
25   enc3027       4.85      4.50    4.50
26   enc3028       4.85      4.50    4.50
27   enc3029       4.85      4.50    4.50
28   enc3030       4.85      4.50    4.50
29   enc3031       4.85      4.50    4.50
30   enc4021       4.85      4.41    4.41
31   enc4023       4.85      4.41    4.41
32   enc4024       4.85      4.41    4.41
33   enc4025       4.85      4.41    4.41
34   enc4026       4.85      4.50    4.50
35   enc4027       4.85      4.50    4.50
36   enc4028       4.85      4.50    4.50
37   enc4029       4.85      4.50    4.50
38   enc4030       4.85      4.50    4.50
39   enc4031       4.85      4.50    4.50
40   enc4032       4.85      4.50    4.50
41   enc4033       4.85      4.50    4.50
42   enc4034       4.85      4.50    4.50
43   enc6002       4.60       NaN     NaN
44   enc6011       4.60       NaN     NaN
45   enc6012       4.60       NaN     NaN
46   enc6013       4.60       NaN     NaN
47   enc6014       4.60       NaN     NaN
48   enc6015       4.60       NaN     NaN
49   enc6016       4.60       NaN     NaN
50   enc6017       4.60       NaN     NaN
51   enc7002       4.85       NaN     NaN
52   enc7003       4.85       NaN     NaN
53   enc7004       4.85       NaN     NaN
54   enc7009       4.85      4.50    4.50
55   enc1010       4.85      4.50    4.50
56   enc1011       4.85      4.50    4.50
57   enc1012       4.85      4.50    4.50
58   enc1013       4.85      4.50    4.50
59   enc1014       4.85      4.50    4.50
60   enc1015       4.85      4.50    4.50
61   enc1016       4.85      4.50    4.50
62   enc1017       4.85      4.50    4.50
63   enc1018       4.85      4.50    4.50
64   enc1025       4.85      4.62    4.62
65   enc1026       4.85      4.50    4.50
66   enc2010       4.85      4.50    4.50
67   enc2012       4.85      4.50    4.50
68   enc2014       4.85      4.50    4.50
69   enc2015       4.85      4.50    4.50
70   enc2016       4.85      4.50    4.50
71   enc2018       4.85      4.50    4.50
72   enc2019       4.85      4.50    4.50
73   enc2020       4.85      4.50    4.50
74   enc2021       4.85      4.50    4.50
75   enc2022       4.85      4.50    4.50
76   enc2023       4.85      4.50    4.50
77   enc3033       4.85      4.50    4.50
78   enc3034       4.85      4.50    4.50
79   enc3036       4.85      4.50    4.50
80   enc4020       4.85      4.41    4.41
81   enc4022       4.85      4.41    4.41
82   enc4035       4.85      4.50    4.50
83   enc7005       4.85      4.50    4.50
84   enc7006       4.85      4.50    4.50
85   enc7007       4.85      4.62    4.62
86   enc7008       4.85      4.62    4.62
87   enc8001       4.85      4.50    4.50
88   enc8017       4.85      4.50    4.50
89   enc8018       4.85      4.50    4.50
90   enc8019       4.85      4.50    4.50
91   enc8021       4.85      4.50    4.50
92   enc8022       4.85      4.62    4.62
93   enc8023       4.85      4.62    4.62
94   enc8024       4.85      4.62    4.62
95   enc8025       4.85      4.62    4.62
96   enc8026       4.85      4.62    4.62
97   enc8027       4.85      4.62    4.62
98   enc8028       4.85      4.62    4.62
99   enc8033       4.85      4.40    4.40
票数 1
EN

Stack Overflow用户

发布于 2020-06-27 23:51:50

我会尝试下载ENC_NAME,然后做一个轴心。我不确定如何准确地确定您正在寻找的值。

我假设:

1 HP VC Flex-10/10D Module对应于VC_ACTIVE

2 HP VC Flex-10/10D Module对应于VC_STDN

如果有更好的方法来识别这些值,您可以在下面的代码中更改过滤条件。

代码

代码语言:javascript
复制
df  = pd.read_csv("file.txt", names=["col1"])
df = df.col1.str.split(' ', expand = True)
df[1] = df[1].replace("",None).ffill()

df["colname"] = np.where(
    df[9] == "KVM", "OA_VERSION", np.where(
    df[2] == "1", "VC_ACTIVE", np.where(
    df[2] == "2", "VC_STDN", None)))
    
df["value"] = np.where(
    df[9] == "KVM", df[10], np.where(
    df[2] == "1", df[9], np.where(
    df[2] == "2", df[9], None)))

df["ENC_NAME"] = df[1]

df = df.pivot(index="ENC_NAME", columns="colname", values="value")\
[["OA_VERSION", "VC_ACTIVE", "VC_STDN"]]\
.reset_index()

df.columns.name = None

print(df)

输出:

代码语言:javascript
复制
ENC_NAME OA_VERSION VC_ACTIVE VC_STDN
enc1001       4.85      4.50    4.50
enc1002       4.85      4.50    4.50
enc1003       4.85      4.50    4.50
enc1004       4.85      4.50    4.50
enc1005       4.85      4.50    4.50
enc1006       4.85      4.50    4.50
enc1007       4.85      4.50    4.50
enc1008       4.85      4.40    4.40
enc1009       4.85      4.50    4.50
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62610716

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档