Skip to main content
AI Assist is now on Stack Overflow. Start a chat to get instant answers from across the network. Sign up to save and share your chats.
deleted 9 characters in body
Source Link
ilyakhov
  • 1.3k
  • 13
  • 21
import pandas as pd df1 = pd.DataFrame({'Column1': [1,2,3,4,5], 'Column2': ['a','b','c','d','e'], 'Column3': ['r','u','k','j','f']}) df2 = pd.DataFrame({'Column1': [1,1,1,2,2,3,3], 'ColumnB': ['a','d','e','r','w','y','h']}) iter = -1 dfs = pd.DataFrame({}) for name, group in df2.groupby('Column1'): buffer_df = pd.DataFrame({'Column1': group['Column1'][:1]}) i = 0 for iindex, value in range(len(group['ColumnB']).iteritems(): iteri += 1 string = 'Column_' + str(i) buffer_df[string] = group['ColumnB'][iter]value dfs = dfs.append(buffer_df) result = pd.merge(df1, dfs, how='left', on='Column1') print(result) 
import pandas as pd df1 = pd.DataFrame({'Column1': [1,2,3,4,5], 'Column2': ['a','b','c','d','e'], 'Column3': ['r','u','k','j','f']}) df2 = pd.DataFrame({'Column1': [1,1,1,2,2,3,3], 'ColumnB': ['a','d','e','r','w','y','h']}) iter = -1 dfs = pd.DataFrame({}) for name, group in df2.groupby('Column1'): buffer_df = pd.DataFrame({'Column1': group['Column1'][:1]}) for i in range(len(group['ColumnB'])): iter += 1 string = 'Column_' + str(i) buffer_df[string] = group['ColumnB'][iter] dfs = dfs.append(buffer_df) result = pd.merge(df1, dfs, how='left', on='Column1') print(result) 
import pandas as pd df1 = pd.DataFrame({'Column1': [1,2,3,4,5], 'Column2': ['a','b','c','d','e'], 'Column3': ['r','u','k','j','f']}) df2 = pd.DataFrame({'Column1': [1,1,1,2,2,3,3], 'ColumnB': ['a','d','e','r','w','y','h']}) dfs = pd.DataFrame({}) for name, group in df2.groupby('Column1'): buffer_df = pd.DataFrame({'Column1': group['Column1'][:1]}) i = 0 for index, value in group['ColumnB'].iteritems(): i += 1 string = 'Column_' + str(i) buffer_df[string] = value dfs = dfs.append(buffer_df) result = pd.merge(df1, dfs, how='left', on='Column1') print(result) 
added 452 characters in body
Source Link
ilyakhov
  • 1.3k
  • 13
  • 21

2)* buffer_df is produced iteratively:

step0 (buffer_df = pd.DataFrame({'Column1': group['Column1'][:1]})): Column1 5 3 step1 (buffer_df['Column_0'] = group['ColumnB'][5]): Column1 Column_0 5 3 y step2 (buffer_df['Column_1'] = group['ColumnB'][5]): Column1 Column_0 Column_1 5 3 y h 

2)* buffer_df is produced iteratively:

step0 (buffer_df = pd.DataFrame({'Column1': group['Column1'][:1]})): Column1 5 3 step1 (buffer_df['Column_0'] = group['ColumnB'][5]): Column1 Column_0 5 3 y step2 (buffer_df['Column_1'] = group['ColumnB'][5]): Column1 Column_0 Column_1 5 3 y h 
add more details.
Source Link
ilyakhov
  • 1.3k
  • 13
  • 21

P.s. More details:

  1. for df2 I produce groups by 'Column1'. The single group is a data frame. Example below:

    Column1 ColumnB 

    0 1 a 1 1 d 2 1 e

  2. for each group I produce data frame buffer_df:

    Column1 Column_0 Column_1 Column_2 

    0 1 a d e

  3. after that I create DF dfs:

    Column1 Column_0 Column_1 Column_2 

    0 1 a d e 3 2 r w NaN 5 3 y h NaN

  4. in the end I execute left join for df1 and dfs obtaining needed result.

P.s. More details:

  1. for df2 I produce groups by 'Column1'. The single group is a data frame. Example below:

    Column1 ColumnB 

    0 1 a 1 1 d 2 1 e

  2. for each group I produce data frame buffer_df:

    Column1 Column_0 Column_1 Column_2 

    0 1 a d e

  3. after that I create DF dfs:

    Column1 Column_0 Column_1 Column_2 

    0 1 a d e 3 2 r w NaN 5 3 y h NaN

  4. in the end I execute left join for df1 and dfs obtaining needed result.

added 81 characters in body
Source Link
ilyakhov
  • 1.3k
  • 13
  • 21
Loading
Source Link
ilyakhov
  • 1.3k
  • 13
  • 21
Loading