将excel表转换为键列表

时间:2018-03-27 08:15:31

标签: python excel python-3.x pandas

我想从Excel文件中为大型hdf文件创建一个键列表:

表:

enter image description here

我希望密钥列表如下所示:

/blue/a/a1
/blue/a/a2
/blue/b/b1
...
到目前为止,我的代码是:

import pandas as pd
import numpy as np

df = pd.read_excel('file.xlsx', usecols = ['A', 'B', 'C'])
print(df)


list1, list2, list3 = df['A'].tolist(), df['B'].tolist(), df['C'].tolist()
print(list1,list2,list3)

for i in list1:
    list1[i].append(list2[i]).append(list3[i])


print(list1)

转换为3个列表有效。然后我尝试将每个列表的行附加在一起,但没有成功。有没有一种简单的方法可以做到这一点?

2 个答案:

答案 0 :(得分:2)

使用zip方法,然后使用string.join获取所需的输出

<强>实施例

res = []
list1, list2, list3 = df['A'].tolist(), df['B'].tolist(), df['C'].tolist()
for i in zip(list1, list2, list3 ):
    val = map(str, i)
    res.append("/{0}".format("/".join(val)))

答案 1 :(得分:1)

您应该使用apply函数根据需要创建新列,然后将其转换为列表

import pandas as pd
import numpy as np

df = pd.read_excel('file.xlsx', usecols = ['A', 'B', 'C'])
print(df)
x=df[['A','B','C']].apply(lambda row: '/'+row['A']+'/'+row['B']+'/'+row['C'],axis=1)
x.tolist()

更新更短的代码:

x=df[['A','B','C']].apply(lambda row: '/'+'/'.join(row),axis=1)
x.tolist()