从Dataframe中的一行中获取某些列值并将它们添加到另一个datafram中

2024-10-01 04:59:46 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

new_columns = ['DATE', 'PRICE1', 'PRICE2']
bestdf = pd.DataFrame(columns = new_columns)
bestdf.set_index(['DATE'])

。我已在df中找到某一行,并将该行赋给变量last_time

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

但这似乎不管用。仅供参考,我还想把它放入一个循环中(在循环中,将修改最后一次,每次新值都将写入新行)。我只是在试着让功能正确。你知道吗

请帮帮我!你知道吗

谢谢


Tags: columns数据sampledfnewdatetimedatetime
1条回答
网友
1楼 · 发布于 2024-10-01 04:59:46

有多种方法可以实现您的目标: 你也可以把你的问题分解成多个部分。这样你就可以应用不同的步骤来解决它们。你知道吗

举个例子:

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

代码继续:

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

输出:

    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

代码继续:

bestdf['DATE'] = bestdf['DATE'].apply(lambda value: value.split(' ')[0])
# we change column format based on how we need it to be
bestdf

输出:

    DATE    PRICE1  PRICE2
0   2016-10-03  335.29  None
1   2016-10-03  33.90   None

我们也可以对datetime对象做同样的事情。不一定是字符串。你知道吗

相关问题 更多 >