Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python中的数据帧追加_Python_Pandas_Dataframe_Data Analysis - Fatal编程技术网

Python中的数据帧追加

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

我在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    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。