Question regarding how to generate a new key in a panda dataframe

Viewed 23

I have a data frame like this:

df = pd.DataFrame({"item" : ["a", "b"], "beg": [1, 2], "end" : [10, 11]})

And I want to create a new key (lets call it "range") that holds every value of "beg" and "end" for every item, ie:

  item  beg end range
0   a    1   10  1 10
1   b    2   11  2 11 

I'm guessing I have to make a list of list, but I can't figure out how. I know that I shloud loop over the df like this:

for index, row in df.iterrows():
  df["range"] = #here goes the function

Thanks in advance.

1 Answers

You can try:

df['range'] = df[['beg','end']].astype(str).agg(' '.join, axis=1)

or:

df['range'] = df.apply(lambda x: f"{x['beg']} {x['end']}", axis=1)

Which gives you:

  item  beg  end range
0    a    1   10  1 10
1    b    2   11  2 11

where range is string type. If you want list type:

df['range'] = [list(x) for x in zip(df['beg'], df['end'])]
Related