尝试将python列表转换为熊猫数据框:
input:
list = [[a,x,[1,2]],[a,y,[1]],[a,z,[1,2,3]],[b,v,[1]],[b,w,[1,2]]...]
一些转换技巧导致:
output:
c1 c2 c3
a x 1
a x 2
a y 1
a z 1
a z 2
a z 3
b v 1
b w 1
b w 2
每个列表元素的第一个和第二个元素始终是单个值(分别变为c1和c2),但是第三个元素是长度可变的列表。我尝试了各种循环将其转换为列表,每个元素都准备好作为“行”,但我无法使其工作。它有点像一个反向枢轴表,但这也并没有真正帮助我。感谢您的帮助
答案 0 :(得分:0)
enter code here
import pandas as pd
import numpy as np
df = pd.DataFrame([['a','x',[1,2]],['a','y',[1]],['a','z',[1,2,3]],['b','v',[1]],['b','w',[1,2]]],columns=["colum1","column2","column3"])
print(df)
print("******************")
lst_col = 'column3'
r = pd.DataFrame({
col:np.repeat(df[col].values, df[lst_col].str.len())
for col in df.columns.drop(lst_col)}
).assign(**{lst_col:np.concatenate(df[lst_col].values)})[df.columns]
print(r)