python - pandas:如何从使用 iterrows() 提取的行创建 DataFrame?

标签 python pandas

我有一个很大的数据集,并且正在尝试按特定条件对某些行进行分组(在本例中,除单词的最后两个字母之外的所有行,即 some_string[-1])。

我首先选择行并将它们存储在字典中,其中键作为单词的第一部分,值作为满足该条件的行元组列表。

(不知道这是不是最好的方法,请大家提出建议!)

def group_by_name(data, name_column): 
  #simple grouping of bookings according to everything except last two letters of name
  buckets = {};
  i =0;
  for index,booking in data.iterrows():
      buckets.setdefault(str(booking[name_column])[:-1],[]).append((index,booking))
  return buckets

这会返回每个键的对象列表 - 如何将这些对象重新转换为数据帧,以便我可以更轻松地进一步读取和操作它们?

最佳答案

我认为你需要groupby :

data = pd.DataFrame({  'D':[1,3,5,7,1],
                   'E':[5,3,6,9,2],
                   'F':['asd','tty','tty','tty','asd']})

print (data)
   D  E    F
0  1  5  asd
1  3  3  tty
2  5  6  tty
3  7  9  tty
4  1  2  asd

for i, g in data.groupby(data['F'].str[:-2]):
    print (i)
    print (g)

a
   D  E    F
0  1  5  asd
4  1  2  asd
t
   D  E    F
1  3  3  tty
2  5  6  tty
3  7  9  tty

关于python - pandas:如何从使用 iterrows() 提取的行创建 DataFrame?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47550613/

相关文章:

python - 如何从 yml 文件获取数据,然后作为字典返回

python - 对 pandas 中的群体进行采样

python - 根据列值将 nan 设置为 pandas 数据框中的行

python - (错误)[ERROR] : Connection lost before response written

python - 我在将变量放入路径时遇到一些问题

python - 打印列表中相同值的总和

python - 使用另一个数据帧处理另一个数据帧

python - groupby后聚合的列组合

python - 带有 NaN 掩码的数据帧的加权平均值

python - 如何同时在模式和无模式模式下使用Django HStore DictionaryField?