我的数据框是这样的:
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/