A Series is one column of values with a label for each value. The labels are the index. A DataFrame is a set of Series that share one index, one per column.
stock = pd.Series([12, 0, 7], index=["North", "South", "East"])
stock["South"] # 0, looked up by its label
You can build a small DataFrame from a dictionary: each key is a column name and each value is a list, all the same length:
pd.DataFrame({"region": ["North", "South"], "target": [2000, 2500]})
.index gives the labels, .to_numpy() the bare values and .tolist() a plain Python list.
One rule surprises people: when you do arithmetic with two Series, pandas lines them up by label, not by position. A label that's in only one of them gives NaN, unless you use a method like .add(other, fill_value=0).