2024-04-26 20:40:01 发布
网友
colum 1, colum2 a,b,c 30 b,c,f 40 a,g,z 50 . . . 使用上面的dataframe和col1,2,我希望dataframe和下面的dataframe和col3,4一样。 此外,col1由带逗号的值组成。col4由col3后面的col2之和组成。 column3, column4 a 80 b 70 c 70 f 40 g 50 z 50
colum 1, colum2 a,b,c 30 b,c,f 40 a,g,z 50 . . .
column3, column4 a 80 b 70 c 70 f 40 g 50 z 50
用途:
df = (df.set_index('colum2')['colum1'] .str.split(',', expand=True) .stack() .reset_index(name='column3') .groupby('column3', as_index=False)['colum2'] .sum() .rename(columns={'colum2':'column4'}) ) print (df) column3 column4 0 a 80 1 b 70 2 c 70 3 f 40 4 g 50 5 z 50
解释:
colum2
DataFrame
sum
另一种解决方案:
from itertools import chain a = df['colum1'].str.split(',') lens = a.str.len() df = pd.DataFrame({ 'column3' : list(chain.from_iterable(a)), 'column4' : df['colum2'].repeat(lens) }).groupby('column3', as_index=False)['column4'].sum() print (df) column3 column4 0 a 80 1 b 70 2 c 70 3 f 40 4 g 50 5 z 50
colum1
用途:
解释:
colum2
DataFrame
sum
另一种解决方案:
解释:
colum1
sum
相关问题 更多 >
编程相关推荐