创建空数据框并向其添加行

问题描述 投票:0回答:2

我正在尝试创建一个空数据框,其中pandas有两列(['originating_number','terminating_number']。在我创建这个新的空数据框后,我的目标是遍历另一个数据框我添加了一个如果满足某些条件,则排到这个新的空数据框。不幸的是,我遇到了初始化空数据框或添加到它的障碍。这是我当前的代码(其中记录代表我的其他数据框我是与...合作):

    verified_frame = pd.DataFrame(columns=['originating_number_2', 'terminating_number_2'])

    for index, row in records.iterrows():
        originating_number_length = len(str(row['originating_number']))
        terminating_number_length = len(str(row['terminating_number']))

        if originating_number_length == 10 and terminating_number_length == 10:

            temp_df = pd.DataFrame([row['originating_number'],row['terminating_number']])
            verified_frame.append(temp_df)

但是,当我在此代码之后设置跟踪(在if块中)时,我可以看到我的temp_df具有正确的值,但是当我查看verified_frame时,尚未添加值。

谢谢您的帮助!

python pandas dataframe initialization append
2个回答
2
投票

我认为你几乎就在那里,你只需要将新的verfied_frame分配给它的附加自我。试试这个:

verified_frame = pd.DataFrame(columns=['originating_number_2', 'terminating_number_2'])

for index, row in records.iterrows():
    originating_number_length = len(str(row['originating_number']))
    terminating_number_length = len(str(row['terminating_number']))

    if originating_number_length == 10 and terminating_number_length == 10:

        temp_df = pd.DataFrame([row['originating_number'],row['terminating_number']])

# reassign verfied_frame here
        verified_frame = verified_frame.append(temp_df)

这是支持这个https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.append.html的文档


0
投票

如果您只需要根据条件从原始帧中过滤掉行,则可以直接执行此操作,而不是遍历每一行:

verified_frame  = records[(records['originating_number'] == 10) & (records['terminating_number'] == 10)]['originating_number', 'terminating_number']
verified_frame.columns = ['originating_number_2', 'terminating_number_2']

迭代数据帧行的效率不高,应始终将其视为最后一个选项。

© www.soinside.com 2019 - 2024. All rights reserved.