向只包含列名的现有空数据框添加数据

2024-04-26 11:06:30 发布

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

如何向数据帧中现有的空列添加数据?你知道吗

我有一个带有列名的空数据框(股票代码)

enter image description here

我尝试向每个股票添加数据,基本上,根据标题名称从左到右逐列填充dataframe。你知道吗

我正在从另一个CSV文件中提取数据,该文件如下所示(CSV file name=column name in the dataframe Im trying to populated):

enter image description here

PS由于每个股票的可用数据长度,可能会出现其他问题,例如,我可能有一个列表,其中第一只股票的值为10,第二只股票的值为0,第三只股票的值为25。我计划保存在一个CSV文件,所以它可能不会引起太大的问题。你知道吗

enter image description here

我试过下列想法,但运气不好。欢迎提出任何建议。你知道吗

import pandas as pd
import os


path = 'F:/pathToFiles'

Russell3k_Divs = 'Russel3000-Divs/'
Russell3k_Tickers =  'Russell-3000-Stock-Tickers-List.csv'

df_tickers =  pd.read_csv(path + Russell3k_Tickers)

divFls = os.listdir(path + Russell3k_Divs)

for i in divFls:
    df = pd.read_csv(path + Russell3k_Divs + i)
    Div = df['Dividends']
    i = i[0].split('.')

    df_tickers[i] = df_tickers.append(Div)
    print(df_tickers)
    break

编辑:解决方案

import pandas as pd
import os
from tqdm import tqdm


path = 'F:/pathToFiles'

Russell3k_Divs = 'Russel3000-Divs/'
Russell3k_Tickers =  'Russell-3000-Stock-Tickers-List.csv'

df_tickers = pd.DataFrame()

divFls = os.listdir(path + Russell3k_Divs)

for i in tqdm(divFls):
    df = pd.read_csv(path + Russell3k_Divs + i)

    i = i.split('.')[0]

    df[str(i)] = df['Date']

    df_tickers = df_tickers.join(df[str(i)], how='outer')


df_tickers.to_csv('Russell-3000-Stock-Tickers-List1.csv', encoding='utf-8', index=False)

Tags: 文件csv数据pathimportdfospd