如何在 for 循环中向 Pandas Dataframe 添加字符串值?

Posted

技术标签:

【中文标题】如何在 for 循环中向 Pandas Dataframe 添加字符串值?【英文标题】:How to add string values to Pandas Dataframe within a for loop? 【发布时间】:2019-12-19 23:56:22 【问题描述】:

我有一个 pandas 数据框 df_causation,我已将其创建为具有相应列名的空数据框。

df_causation = pd.DataFrame(columns=['Question'])

我有一个for 循环,对于循环的每次迭代,我都会得到一个名为cause_str 的新字符串,如下所示:-

for i in range(len(X_test)):
   cause_str = hyp.join(f_imp) #cause_str is a new string obtained for each iteration 

(这个是怎么得到的方法忽略,我只是举个例子)

我想将这些新字符串 (cause_str)(全部)附加到我的 Pandas 数据框 df_causation 的问题列中的每一行。有什么合适的方法吗?

编辑:预期输出

df_causation.  **Causation**
   Row 0          cause_str from i = 0 th iteration in loop
   Row 1          cause_str from i = 1 th iteration in loop etc.

【问题讨论】:

您介意创建一个您正在寻找的输出的小例子吗?我很难全面了解这个问题。 请在编辑中找到预期的输出。谢谢@IvanLibedinsky 好的,谢谢。现在,我认为您应该做的是将cause_str 列一个列表,然后简单地定义 df_causation['Question'] = cause_str.如果长度正确,则list 的每个索引值将匹配数据框中的行。 您阅读过 Pandas 文档吗?正如@CeliusStingher 所说,您似乎只需要列分配,对吧? 【参考方案1】:

IIUC 正确,这应该可以工作:

dfd['**Causation**'] = df['df_causation.'].apply(lambda x: f'cause str from i = x.split(" ")[1] th iteration in loop')                                                             

df3                                                                                                                                                                                   

  df_causation.                              **Causation**
0         Row 0  cause str from i = 0 th iteration in loop
1         Row 1  cause str from i = 1 th iteration in loop

【讨论】:

以上是关于如何在 for 循环中向 Pandas Dataframe 添加字符串值?的主要内容,如果未能解决你的问题,请参考以下文章

在 Pandas 中将数据框列拆分为相等的窗口

如何在python中向后循环? [复制]

在for循环sass中向变量添加%单位[重复]

如何将 for 循环中的 .pkl 文件附加到 for 循环中创建的 pandas 数据帧?

在双 for 循环中向数据框添加列

如何在 Pandas 中使用 For 循环 KEY 命名 DataFrame