假设我有一个嵌套列表,第二层中的元素数量不等,例如 a=[[1,2,3],[4,5],[6,7,8,9]]
。我还有相应的包含日期变量的列表,例如 b=[['Mon','Tues','Wed'],['Mon','Wed'],['Mon','Tues','Wed ','星期四']]
。我想将 a
和 b
转换为 pandas dataframes
因为它能够接受不相等的行,然后我想组合 a
和 b
合并到一个 dataframe
中,并对三个日期列执行 merge
以查找公共(public)日期和相应的值。但是我不确定如何将嵌套列表转换为数据帧。我尝试将它们转换为 np.array 但它无法容纳不相等的行。
最佳答案
我能想到的最好办法是将每条记录压缩到字典中,为该行创建一个单行数据帧,然后将其连接(或外连接)到前面的行。代码如下:
a = [[1,2,3],[4,5],[6,7,8,9]]
b = [['Mon','Tues','Wed'],['Mon','Wed'],['Mon','Tues','Wed','Thur']]
df = pd.DataFrame()
for row in zip(a,b):
d = dict(zip(row[1], row[0]))
dfrow = pd.DataFrame(d, index=[0]) #Dataframe for 1 row
df = pd.concat([df, dfrow])
给出这个:
Mon Thur Tues Wed
0 1 NaN 2.0 3
0 4 NaN NaN 5
0 6 9.0 7.0 8
关于python - 将第二层中具有不等元素的Python嵌套列表转换为数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38195021/