我有一个源数据框,需要循环所有评论的值,这些评论的值是在相应的名称字段中存在的值,并且结果需要作为DF中的新列添加。这也可以成为一个新的DataFrame。Dataframe元素访问
输入数据:
Name Comments
0 N-1 Good
1 N-2 bad
2 N-3 ugly
3 N-1 very very good
4 N-3 what is this
5 N-4 pathetic
6 N-1 needs improvement
7 N-2 this is not right
8 Ano-5 It is average
[8 rows x 2 columns]
例如 - 对于评论的所有值名称N-1,运行一个循环,并沿着与这些2个值添加的输出作为新的列(名称,注释) 。
我试图做到以下几点,并能够根据名称进行分组。但我无法通过评论的所有值运行为他们追加输出:
gp = CommentsData.groupby(['Document'])
for g in gp.groups.items():
Data1 = CommentsData.loc[g[1]]
#print(Data1)
数据在集团通过循环就这样产生:
Name Comments
0 N-1 good
3 N-1 very very good
6 N-1 needs improvement
1 N-2 bad
7 N-2 this is not right
我无法访问第2列中的值。 使用df.iloc[i]
- 我只能访问第一个元素。但并非全部(因为不同名称的元素数量会有所不同)。
现在,我想使用Comment中的值,然后将输出添加为数据框中的附加列(可以是新的DF)。
预期输出:
Name Comments Result
0 N-1 Good A
1 N-2 bad B
2 N-3 ugly C
3 N-1 very very good A
4 N-3 what is this B
5 N-4 pathetic C
6 N-1 needs improvement C
7 N-2 this is not right B
8 Ano-5 It is average B
[8 rows x 3 columns]
你正在寻找应用'()'? – Jan
@Jan - 谢谢。 是的,我正在寻找这样的东西。 当我试图应用(): '数据2 = Data1.apply(STR,轴= 1)'' 打印(DATA2)' 我正在怪异输出以下面的格式: '2名称无-1 \ n评论...' '16名称N-1 \ n评论...' –
检查枢轴,在这个答案:http://stackoverflow.com/questions/22798934/pandas-long-to-wide-reshape #35087831 - 你只想制作一张长桌子。 – kabanus