csv-fi中随机数的计算

2024-04-25 14:58:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个csv文件的列:菜名(索引),苹果,柑橘,香蕉,甜瓜。。。(还有更多的水果柱)。 每种配方都有一行,列有每种水果的重量百分比。但并不是所有的食谱都包含所有的水果。这些是csv文件中的空白。 看起来是这样的:

recipe_name apple citrus banana melon pudding 1 0.45 0.78
pudding 2 0.23 0.15 0.12

现在我想知道每个食谱中水果的数量。所以我想创建一个额外的列,如果第一个食谱包含猕猴桃,香蕉和苹果,在这个额外的列中,数字3必须在那里。就像这样:

recipe_name apple citrus banana melon count pudding 1 0.45 0.78 2
pudding 2 0.23 0.15 0.12 3

我试着在Excel,pandas DataFrame,pandas groupby中解决这个问题。。但我没有找到解决办法。。有人有主意吗?你知道吗


Tags: 文件csvname苹果applepandasrecipebanana
2条回答

你可以试试这样的

import csv

with open(yourFileName, 'rU') as f:
    data = {row[0]:len([x for x in row[1:] if x]) for row in csv.reader(f, yourDialect)[1:]}

这将给你一本字典,其中的键是菜名,值是水果数!你知道吗

对感兴趣的列调用^{},并传递参数axis=1

In [217]:
df['count'] = df.ix[:,'apple':].count(axis=1)
df

Out[217]:
  recipe_name  apple  citrus  banana  melon  count
0   pudding 1   0.45    0.78     NaN    NaN      2
1   pudding 2    NaN    0.23    0.15   0.12      3

相关问题 更多 >