Python 从数据帧中的一行获取某些列值,并将它们添加到另一个数据帧中

Python 从数据帧中的一行获取某些列值,并将它们添加到另一个数据帧中,python,python-2.7,pandas,dataframe,Python,Python 2.7,Pandas,Dataframe,我想将某些列值从数据帧df中的特定行复制到另一个名为bestdf 在这里,我创建了一个空数据帧(称为bestdf): .我在df中找到了某一行,并在上次将该行分配给变量: last_time = df.iloc[-1] print last_time 给我 DATETIME PRC 2016-10-03 00:07:39.295000 335.82 然后我想从DATETIME列中获取2016-10-03,并将其放入我的另一个数据帧(bestdf)

我想将某些列值从数据帧
df
中的特定行复制到另一个名为
bestdf

在这里,我创建了一个空数据帧(称为
bestdf
):

.我在
df
中找到了某一行,并在上次将该行分配给变量

last_time = df.iloc[-1]
print last_time
给我

                  DATETIME     PRC
2016-10-03 00:07:39.295000  335.82
然后我想从
DATETIME
列中获取
2016-10-03
,并将其放入我的另一个数据帧(
bestdf
)的
DATE
列中。 我还想获取
PRC
并将其放入空数据帧的
PRICE1
列中。我希望
bestdf
看起来像这样:

                      DATE  PRICE1  PRICE2
                2016-10-03  335.82
这是我到目前为止得到的

sample_date = str(last_time).split()
best_price = sample_date[2]
sample_date = sample_date[0]

bestdf['DATE'] = sample_date
bestdf['PRICE1'] = best_price
但这似乎不起作用。仅供参考,我还想将其放入一个循环中(在循环中,将修改最后一次,每次新值都将写入新行)。我正在尝试正确的功能

请帮忙


谢谢

有多种方法可以完成您想做的事情: 此外,您还可以将问题分解为多个部分。这样,您将能够应用不同的步骤来解决这些问题

以下是一个例子:

import pandas as pd
from datetime import datetime

data = [{'DATETIME': '2016-10-03 00:07:39.295000', 'PRC': 335.29},
        {'DATETIME': '2016-10-03 00:07:39.295000', 'PRC': 33.9},
        {'DATETIME': '2016-10-03 00:07:39.295000', 'PRC': 10.9}]

df = pd.DataFrame.from_dict(data, orient='columns')

df
输出:

    DATETIME                    PRC
0   2016-10-03 00:07:39.295000  335.29
1   2016-10-03 00:07:39.295000  33.90
2   2016-10-03 00:07:39.295000  10.90
    DATE                        PRICE1  PRICE2
0   2016-10-03 00:07:39.295000  335.29  None
1   2016-10-03 00:07:39.295000  33.90   None
    DATE    PRICE1  PRICE2
0   2016-10-03  335.29  None
1   2016-10-03  33.90   None
代码继续:

bestdf = df[df['PRC'] > 15].copy()
# we filter data from original df and make a copy
bestdf.columns = ['DATE','PRICE1']
# we change columns as we need
bestdf['PRICE2'] = None
bestdf
bestdf['DATE'] = bestdf['DATE'].apply(lambda value: value.split(' ')[0])
# we change column format based on how we need it to be
bestdf
输出:

    DATETIME                    PRC
0   2016-10-03 00:07:39.295000  335.29
1   2016-10-03 00:07:39.295000  33.90
2   2016-10-03 00:07:39.295000  10.90
    DATE                        PRICE1  PRICE2
0   2016-10-03 00:07:39.295000  335.29  None
1   2016-10-03 00:07:39.295000  33.90   None
    DATE    PRICE1  PRICE2
0   2016-10-03  335.29  None
1   2016-10-03  33.90   None
代码继续:

bestdf = df[df['PRC'] > 15].copy()
# we filter data from original df and make a copy
bestdf.columns = ['DATE','PRICE1']
# we change columns as we need
bestdf['PRICE2'] = None
bestdf
bestdf['DATE'] = bestdf['DATE'].apply(lambda value: value.split(' ')[0])
# we change column format based on how we need it to be
bestdf
输出:

    DATETIME                    PRC
0   2016-10-03 00:07:39.295000  335.29
1   2016-10-03 00:07:39.295000  33.90
2   2016-10-03 00:07:39.295000  10.90
    DATE                        PRICE1  PRICE2
0   2016-10-03 00:07:39.295000  335.29  None
1   2016-10-03 00:07:39.295000  33.90   None
    DATE    PRICE1  PRICE2
0   2016-10-03  335.29  None
1   2016-10-03  33.90   None

我们也可以对datetime对象执行同样的操作。不必是字符串。

您能创建一个最小的示例并显示所需的输出吗?!你想从另一个数据框的某些行和列创建新的数据框吗?@VikashSingh这就是我想做的是(我编辑了上面的内容,使其更具信息性)。@Cleb请查看上面的编辑,thanks@nrs90如果您可以共享您的源数据帧结构,这将非常有帮助。谢谢