我有2个数据帧。df1包含一系列值。在
df1 = pd.DataFrame({'winnings': cumsums_winnings_s, 'returns':cumsums_returns_s, 'spent': cumsums_spent_s, 'runs': cumsums_runs_s, 'wins': cumsums_wins_s, 'expected': cumsums_expected_s}, columns=["winnings", "returns", "runs", "wins", "expected"])
df2通过一个函数运行每一行,该函数接受3列,并为每一行生成一个结果-specialSauce
^{pr2}$为df1生成除NaN之外的所有df1列(如果df1/df2在append中切换,则反之亦然)
所以我的问题是如何正确地附加这两个数据帧。在
好吧,这里有几件事。你漏掉了代码,我不得不填补空白。例如,您没有定义
doStuff
,所以我不得不这样做。在有了这个定义,你的代码就不能运行了。我得猜你想干什么。我猜您希望在其他列旁边有一个名为
'specialSauce'
的附加列。在所以,这就是我如何设置和解决问题的方法。在
设置和解决方案
^{pr2}$也
您试图使用^{} 。根据链接文档,它将指定为参数的DataFrame附加到要附加到的DataFrame的末尾。您可能想使用^{} 。在
据我所知,你的问题似乎与你在结果中得到
NaN
有关。在这样做的原因是,您试图在一个数据帧与另一个数据帧之间
.append()
,而它们没有相同的列。在df2
有一个额外的列,即用apply()
和{append
一个pd.DataFrame
到另一个时,结果将有所有列都是pd.DataFrame
对象。当然,由于df1
中不存在此列,因此您将为['specialSauce']
提供一些NaN
。在如果使用
pd.concat()
,这是相同的,在本例中,两个方法都执行相同的操作。为了使结果更接近所需的结果,您可以使用ignore_index
标志,如下所示:这至少会为结果
pd.DataFrame
提供一个“fresh”索引。在编辑
如果您要寻找的是以新列(
^{pr2}$['specialSauce']
)的形式将doStuff
的结果“追加”到现有的df
的末尾,那么您需要做的是使用pd.concat()
,如下所示:这将返回您想要的结果
pd.DataFrame
。在如果您有一个
^{3}$pd.Series
添加到df1
的列中,那么您需要这样添加它:我希望这有帮助,如果没有,请重新描述一下你所追求的。在
相关问题 更多 >
编程相关推荐