如何将一片数据帧转换为新的数据帧

How to transform a slice of dataframe into a new data frame

我是 python 的新手,有时我对某些操作感到困惑 我有一个名为 ro 的数据框,我还使用特定列 PN 3D 为特定值 921 过滤了该数据框,并将结果分配到一个名为 headlamp 的新数据框中] 通过使用以下代码:

 headlamp = ro[ro['PN 3D']=="921"]

我的头灯也是 dataframe 还是只是 slice? 我问这个的原因是因为我的脚本稍后收到一些奇怪的警告和结果。

例如,我创建了一个名为 word 的新列,并将其分配给 headlamp

 headlamp['word'] = ""

我收到以下警告:

 A value is trying to be set on a copy of a slice from a DataFrame

之后,我使用以下脚本将结果分配给 headlamp['word']

 i = 0
 for row in headlamp['Comment'].astype(list):
     headlamp['word'][i] = Counter(str(row).split())
 i+=1
 print headlamp['word']

同样的警告出现了,它影响了我的结果,因为当我使用 headlamp.tail() 时,headlamp['word'] 的最后一行是空的。

有谁知道问题出在哪里以及如何解决?

任何帮助将不胜感激

使用.loc

headlamp = ro.loc[ro['PN 3D']=="921"]

至于剩下的和你的评论……我很困惑。但这是我最好的猜测

设置

import pandas as pd
from string import ascii_lowercase

chars = ascii_lowercase + ' '
probs = [0.03] * 26 + [.22]

headlamp = pd.DataFrame(np.random.choice(list(chars), (10, 100), p=probs)).sum(1).to_frame('comment')
headlamp

headlamp['word'] = headlamp.comment.str.split().apply(lambda x: pd.value_counts(x).to_dict())
headlamp