/ / як додати два або більше кадрів даних в пандах і зробити певний аналіз - python, pandas, dataframe, data-analysis

як додати два або більше кадрів даних в панди і зробити якийсь аналіз - python, pandas, dataframe, data analysis

У мене є 3 df "s:

df1=pd.DataFrame({"Name":["one","two","three"],"value":[4,5,6]})
df2=pd.DataFrame({"Name":["four","one","three"],"value":[8,6,2]})
df3=pd.DataFrame({"Name":["one","four","six"],"value":[1,1,1]})

Я можу додати один за одним, але я хочу додати всі три кадри даних за один раз і провести аналіз.

Я намагаюся підрахувати ім'я, що міститься в тому, скільки кадрів даних розділено на загальну кількість кадрів даних name present in dataframes/total dataframes

Мій бажаний результат - це

 Name  value   Count
one    11      1
two    5       0.333
three  8       0.666
four   9       0.666
six    1       0.333

Будь ласка, допоможіть, завчасно спасибі!

Відповіді:

1 для відповіді № 1

Використання:

  • перший concat
  • сукупність agg
  • розділити колонку

dfs = [df1, df2, df3]
df = pd.concat(dfs)

df1 = df.groupby("Name")["value"].agg([("value", "sum"), ("Count", "size")]).reset_index()
df1["Count"] /= len(dfs)

Подібне рішення:

df1 = (pd.concat(dfs)
.groupby("Name")["value"]
.agg([("value", "sum"), ("Count", "size")])
.assign(Count = lambda x: x.Count /len(dfs))
.reset_index())

print (df1)
Name  value     Count
0   four      9  0.666667
1    one     11  1.000000
2    six      1  0.333333
3  three      8  0.666667
4    two      5  0.333333