Python 多个panda数据帧中列中值的频率

Python 多个panda数据帧中列中值的频率,python,pandas,dataframe,Python,Pandas,Dataframe,我有多个panda数据帧(超过70个),每个都有相同的列。假设每个数据帧中只有10行。我想在每个数据框中找到A'值列并列出它。例如: # Import pandas library import pandas as pd # initialize list of lists data = [['tom', 10], ['nick', 15], ['juli', 14]] # Create the pandas DataFrame df = pd.DataFrame(data

我有多个panda数据帧(超过70个),每个都有相同的列。假设每个数据帧中只有10行。我想在每个数据框中找到A'值列并列出它。例如:

# Import pandas library 
import pandas as pd 
  
# initialize list of lists 
data = [['tom', 10], ['nick', 15], ['juli', 14]] 
  
# Create the pandas DataFrame 
df = pd.DataFrame(data, columns = ['Name', 'Age']) 

data = [['sam', 12], ['nick', 15], ['juli', 14]] 

df2 = pd.DataFrame(data, columns = ['Name', 'Age']) 
我期待的输出为

Name  Age
 tom    1
 sam    1
nick    2
juli    2

您可以执行以下操作:

from collections import Counter

d={'df1':df1, 'df2':df2, ..., 'df70':df70}
l=[list(d[i]['Name']) for i in d]
m=sum(l, [])
result=Counter(m)

print(result)

是否希望所有数据帧中
Name
列的值计数

main=pd.concat([df,df2])
main[“Name”]。值_计数()

您可以尝试以下方法:

df = pd.concat([df, df2]).groupby('Name', as_index=False).count()
df.rename(columns={'Age': 'Count'}, inplace=True)
print(df)

   Name  Count
0  juli    2
1  nick    2
2   sam    1
3   tom    1
df = pd.concat([df1,df2])
df = df.groupby(['Name'])['Age'].count().to_frame().reset_index()
df = df.rename(columns={"Age": "Count"})
print(df)

如果您的数据帧成本不高,则此功能可以正常工作:

pd.concat([x['Name'] for x in [df,df2]]).value_counts()

nick    2
juli    2
tom     1
sam     1
您可以尝试以下方法:

df = pd.concat([df, df2]).groupby('Name', as_index=False).count()
df.rename(columns={'Age': 'Count'}, inplace=True)
print(df)

   Name  Count
0  juli    2
1  nick    2
2   sam    1
3   tom    1
df = pd.concat([df1,df2])
df = df.groupby(['Name'])['Age'].count().to_frame().reset_index()
df = df.rename(columns={"Age": "Count"})
print(df)

你想要什么还不完全清楚,但也许这就是你想要的。pd.concat([df,df2])。删除重复项(keep='last')这要求一行:
pd.concat([df,df2])[“Name”]。值计数()