[英]How come this python pandas dataframe for loop only fills the first row?
[英]Add series to only the first row in a DataFrame in Python
我有一系列标准普尔 500 指数成分股的股票代码(股票代码)。 我想将所有代码添加到我的 DataFrame (SP) 中的 Ticker 列和 2021-01-22 的行中。
因此,只需将所有代码复制到一个单元格中,如下所示:
SP = pd.DataFrame(data={'Date': "2021-01-22", 'Ticker': ['MMM,ABT,ABBV,...','NaN','NaN']})
SP
Date Ticker
0 2021-01-22 MMM,ABT,ABBV,...
1 2021-01-22 NaN
2 2021-01-22 NaN
我试过SP.at[0, 'Ticker'] = ticker
,但没有奏效。
好的,你可以这样做
ticker_list = list(ticker.values)
SP.iloc[5494,1] = ', '.join(ticker_list)
SP
在这里,我刚刚制作了一个股票代码值列表并将其附加到您想要的行中。 通过查看您的图像,日期“2021-01-22”的行似乎是 5494。
使用日期字段创建 SP 数据框
SP = pd.DataFrame(data={'Date': ["2021-01-22","2021-01-21","2021-01-20"]})
使用“NaN”值创建代码列
SP['Ticker']='NaN'
创建代码数据框 -如果您要将列表转换为数据框以便满足此要求,则可以忽略此步骤
Ticker=pd.DataFrame(['MMM','ABT','ABBV','...','NaN','NaN'])
将 Ticker 数据框列数据转换为列表并将其分配给 SP 数据框中的 Ticker 列
SP['Ticker'][0]=Ticker[0].tolist() #From Data Frame
或者
Ticker = ['MMM','ABT','ABBV','...','NaN','NaN']
SP['Ticker'][0]=Ticker #From pre-defined list
display(SP)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.