我有一个包含这些列的数据框 df [' Page',' Word',' LineNum']。
df =
Idx页面字行号
0 1你好1
1 1这1
2 1是2
4 1和2
5 2例1
6 2 of 1
7 2字1
8 2对2
9 2多个2
10 3页1
11 3合1
12 3 1
13 4文件1
14 4其中1
15 4有1
16 4分裂1
此数据框已从csv文件中提取,并包含有关该文档的详细信息。
可以想象,有几个单词出现在同一行(在LineNum中具有相同的值),而单个页面有几个这样的行。
这就是我想要做的事情:
for( all the pages in the dataframe)
if( LineNum is the same )
df['AllWordsInLine'] = add all the words in the df['Word'] column.
所需的输出
我只有大约2周的大熊猫,我非常感谢专家的回应。 谢谢, Venkat
答案 0 :(得分:0)
df = pd.DataFrame({'Page':[0,0,0,1,1,1,2],
'Word':['a','b','c','d','e','f','g'],
'LineNum':[0,0,1,0,1,2,0]})
for line_page_tuple, subdf in df.groupby(['Page','LineNum']):
print('Page:',line_page_tuple[0],', Line:',line_page_tuple[1],', All words in line:',
subdf.Word.values)
# Page: 0 , Line: 0 , All words in line: ['a' 'b']
# Page: 0 , Line: 1 , All words in line: ['c']
# Page: 1 , Line: 0 , All words in line: ['d']
# Page: 1 , Line: 1 , All words in line: ['e']
# Page: 1 , Line: 2 , All words in line: ['f']
# Page: 2 , Line: 0 , All words in line: ['g']
答案 1 :(得分:0)
我假设您希望每个行号的所有单词跨页。换句话说,您需要从行号到单词集的映射。
您只需按LineNum
分组并聚合设置即可实现此目的。这是一个最小的例子:
df = pd.DataFrame({'Page':[0,0,0,1,1,1,2],
'Word':['a','b','a','d','e','d','g'],
'LineNum':[0,0,1,0,1,2,0]})
res = df.groupby('LineNum')['Word'].apply(set)
# LineNum
# 0 {b, g, a, d}
# 1 {a, e}
# 2 {d}
# Name: Word, dtype: object