我的dataframe中有一个列如下:
var1 year
a [2025]
b [2025,2030]
c [2023,2025,2030,2040]
d .
e .
f .我希望每年在每个牢房中提取,并使其如下:
var1 year
a 2025
b 2025
b 2030
c 2023
c 2025
c 2030
c 2040
.
.
.有什么想法,我怎么能像上面那样提取它们呢?
我尝试了下面的代码,但是无法分离列表中的值。
names = ['sentence-carbon', 'sentence-water']
idx = pd.MultiIndex.from_tuples(df[names].values.tolist(), names=names)
pd.DataFrame(df['SentenceTargetYear'].tolist(), idx).stack().reset_index(names,
name='SentenceTargetYear')发布于 2022-05-08 19:05:26
如果explode列包含列表,则必须对数据进行year:
>>> df.explode('year')
var1 year
0 a 2025
1 b 2025
1 b 2030
2 c 2023
2 c 2025
2 c 2030
2 c 2040如果您的列包含列表的字符串表示形式,则必须首先进行eval:
>>> df.assign(year=pd.eval(df['year'])).explode('year')
var1 year
0 a 2025
1 b 2025
1 b 2030
2 c 2023
2 c 2025
2 c 2030
2 c 2040https://stackoverflow.com/questions/72164185
复制相似问题