python - 循环行并将数据打印到新数据框

标签 python pandas

我的数据框是这样的:

     Rid          emonth             source                 Budget
      1           Jan18,Mar18        Video,webpage,email    5000
      2           Aug18              Editor,content         1200
      3           May18,Jul18        Webpage,video          300
      4           18-Dec             Designer               100

我尝试了以下方法来迭代 Pandas 数据框中的行

 for index, row in df.iterrows():
 print(row["Rid"],df['emonth'],row['source'],row['Budget'])

所需的输出是:

Rid             emonth              source              Budget
1               Jan-18              Video               500
1               Mar-18              webpage             NAN
1               NAN                 email               NAN
2               Aug-18              editor              1200
2               NAN                 Content             NAN
3               May-18              webpage             300
3               Jul-18             Video                NAN
4               Dec-18              designer            100

有人可以帮我逐行迭代并将输出打印到新的数据框中吗?

最佳答案

您可以使用字符串拆分并展开列

# Converting all columns to string
df = df.astype(str)
# Line by line looping through each row, splitting each row series with delimiter of ',' and expanding as dataframe. 
# Transpose will return the expanded columns as rows 
df = pd.concat([df.loc[x].str.split(',',expand=True).T for x in range(len(df))],0).reset_index(drop=True)
# filling none value 'Response id' with forward fill
df['Response_id'] = df['Response_id'].ffill()

输出:

    Rid           emonth               source      Budget
0   1             Jan18               Video             5000
1   1             Mar18              webpage            None
2   1             None                email             None
3   2             Aug18               Editor            1200
4   2             None               content            None
5   3             May18              Webpage            300
6   3             Jul18                video            None
7   4             18-Dec             Designer           100

关于python - 循环行并将数据打印到新数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52465139/

相关文章:

python - 如何在 SQLAlchemy 模型中获取列和值字典?

python - 如果它有多个子目录,如何从 git 使用 pip 安装包?

python - 基于关闭年份条件 Python 添加和减去值

python - 如何有效地映射 pandas DataFrame 上的转换

python - 使用 unstack() reshape pandas 数据框

python - 将具有属性和边的节点从 DataFrame 加载到 NetworkX

python pandas : Why can't I use both index_col and usecols in the same read_csv statement ? 引发 valueError

php - 使用 PHP 显示 Python 脚本输出中的多个字符串

python - 迭代 Pandas Groupby 并合并 DataFrame

python - 为什么 memory_usage() 和 memory_usage(deep=True) 之间有如此大的差异?