Python中的数据帧追加
我在Python中有一个名为df1的数据帧,如下所示:Python中的数据帧追加,python,pandas,dataframe,data-analysis,Python,Pandas,Dataframe,Data Analysis,我在Python中有一个名为df1的数据帧,如下所示: SYMBOL prediction_succesful DATE VALUE 0 ABC Y 29-03-2018 100 1 DEF Y 30-03-2018 96 2 GHI Y 01-04-2018 105 3
SYMBOL prediction_succesful DATE VALUE
0 ABC Y 29-03-2018 100
1 DEF Y 30-03-2018 96
2 GHI Y 01-04-2018 105
3 ABC NaN 30-03-2018 55
我想创建另一个名为df3的数据帧,其中包含3列,分别命名为symbol、no_of_预测和no_of_successful_预测
其中,no_of_predictions包含每个值在符号列中重复的次数,no_of_successful_predictions包含预测值成功的次数Y
我尝试了以下代码,但不起作用:
df3=数据帧(列=['symbol','no_of_predictions','no_of_successful_predictions'])
这里df1是我正在处理的主要数据帧而unique_symbols是包含df1数据帧中所有唯一符号的列表,例如unique_symbols=['ABC'、'DEF'、'GHI']
如果我理解正确,将非常感谢您的帮助,以下内容适用:
by_symbol = df1.groupby('SYMBOL')
df3 = pd.DataFrame({'no_of_predictions': by_symbol.size(),
'no_successful_predictions':
by_symbol.apply(lambda x: (x['prediction_succesful']=='Y').sum())})
>>> df3
no_of_predictions no_successful_predictions
SYMBOL
ABC 2 1
DEF 1 1
GHI 1 1
所发生的事情是,您正在按符号对数据帧进行分组,然后获得每个“子数据帧”的大小,用于
no\u预测
,最后是prediction\u成功
的行数Y
,作为您的最后一列,如果我理解正确,以下操作有效:
by_symbol = df1.groupby('SYMBOL')
df3 = pd.DataFrame({'no_of_predictions': by_symbol.size(),
'no_successful_predictions':
by_symbol.apply(lambda x: (x['prediction_succesful']=='Y').sum())})
>>> df3
no_of_predictions no_successful_predictions
SYMBOL
ABC 2 1
DEF 1 1
GHI 1 1
所发生的事情是,您正在按符号对数据帧进行分组,然后获得每个“子数据帧”的大小,用于no\u预测
,最后,prediction\u成功
的行数Y
,作为您可以允许的最后一列
df3 = df1.groupby('SYMBOL').prediction_succesful.aggregate([len, lambda x: (x == 'Y').sum()])
df3.columns = ['no_of_predictions', 'no_of_successful_predictions']
你可以让
df3 = df1.groupby('SYMBOL').prediction_succesful.aggregate([len, lambda x: (x == 'Y').sum()])
df3.columns = ['no_of_predictions', 'no_of_successful_predictions']
您还可以提到在这种情况下如何使用append方法。@KasimPanjri:从您的问题来看,您不清楚为什么要使用append方法,因为这个方法创建了
DataFrame
,并一次性添加了数据。如果您想将结果与某些现有数据框合并,请查看例如pd.concat
,cf。您还可以提到在这种情况下如何使用append方法。@KasimPanjri:从您的问题来看,您不清楚为什么要合并,因为这一个创建了数据框
,并一次性添加了数据。如果要将结果与某些现有数据帧合并,请查看例如pd.concat
,cf。