【发布时间】:2021-09-19 11:54:39
【问题描述】:
鉴于以下情况:
a = [
[1],
[1, 2],
[1, 2, 3],
[],
[1, 2, 3, 4],
np.nan,
[1, 2, 3, 4, 5],
]
如何进行创作:
import pandas as pd
import numpy as np
n = np.nan
# to this
n = np.nan
dt = pd.DataFrame(
{
"col_1": [1, 1, 1, n, 1, n, 1],
"col_2": [n, 2, 2, n, 2, n, 2],
"col_3": [n, n, 3, n, 3, n, 3],
"col_4": [n, n, n, n, 4, n, 4],
"col_5": [n, n, n, n, n, n, 5],
}
)
尝试
以下似乎有效:
s = pd.Series([x if str(x) != "nan" else [] for x in a])
s.astype(str).str.split(",", expand=True).applymap(
lambda x: str(x).replace("[", "").replace("]", "")
).rename(columns=lambda x: f"col_{x+1}")
但感觉不是很地道。
【问题讨论】: