我的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
复制相似问题