【问题标题】:Pandas read_csv randomly skip rows with specific entriesPandas read_csv 随机跳过具有特定条目的行
【发布时间】:2019-12-19 20:31:20
【问题描述】:

我有一个 csv 文件,我想跳过随机百分比的行,但仅适用于其中一列具有特定条目的行。例如,我可能有一个包含以下内容的 csv,我想跳过所有苹果条目的一定百分比:

 | a  | b  | c  | d  | e      |
 |----|----|----|----|--------|
0| 9  | 1  | 2  | 3  | apple  |
1| 8  | 4  | 5  | 6  | apple  |
2| 7  | 7  | 8  | 9  | apple  |
3| 6  | 10 | 11 | 12 | orange |
4| 5  | 13 | 14 | 15 | orange |
5| 4  | 16 | 17 | 18 | orange |
6| 3  | 19 | 20 | 21 | orange |
7| 2  | 22 | 23 | 24 | banana |
8| 1  | 25 | 26 | 27 | banana |
9| 0  | 28 | 29 | 30 | banana |

我知道我可以跳过整个文件中的行

 df = pd.read_csv('fruit.csv', skiprows = lambda i: i>0 and random.random() > probability_value) 

我知道我也可以使用

从数据框中只选择苹果条目
df2 = df.loc[df['e'] == 'apple']

但是有没有一种简单的方法可以在导入 csv 时选择这些条目并应用跳过行,这样所有非“苹果”条目都不会受到跳过行的影响?

【问题讨论】:

    标签: python-3.x pandas dataframe


    【解决方案1】:

    你可以这样做,但我更喜欢在后期做。

    df = pd.read_csv('fruit.csv').query("e != 'apple'")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-02
      • 1970-01-01
      • 1970-01-01
      • 2015-02-04
      • 2019-04-18
      • 1970-01-01
      相关资源
      最近更新 更多