小编wrc*_*obb的帖子

根据列中的最大值过滤pandas Dataframe

我在索引中有一个重复值的DataFrame.我想过滤这个数据集只显示每个索引的一个实例,方法是选择索引中具有不同列中最大值的行.例如,我的DataFrame看起来像这样:

DF:

Product ID     Store     Sales
    1            A         50
    1            B        200
    1            C         20
    2            A        400
    2            B         10
    3            A        200
    4            A         50
    4            B        100
    4            C        500
Run Code Online (Sandbox Code Playgroud)

我想将此数据过滤到此:

DF2:

Product ID     Store     Sales
    1            B        200
    2            A        400
    3            A        200
    4            C        500
Run Code Online (Sandbox Code Playgroud)

关于如何在熊猫中最好地解决这个问题的任何想法?

非常感谢你花时间陪伴 -

python numpy pandas

6
推荐指数
1
解决办法
4329
查看次数

Python pandas cumsum()在达到最大值后重置

我有一个pandas DataFrame,timedeltas作为单独列中这些增量的累积和,用毫秒表示.下面提供了一个示例:

Transaction_ID  Time            TimeDelta       CumSum[ms]
1              00:00:04.500     00:00:00.000    000
2              00:00:04.600     00:00:00.100    100
3              00:00:04.762     00:00:00.162    262
4              00:00:05.543     00:00:00.781    1043
5              00:00:09.567     00:00:04.024    5067
6              00:00:10.654     00:00:01.087    6154
7              00:00:14.300     00:00:03.646    9800
8              00:00:14.532     00:00:00.232    10032
9              00:00:16.500     00:00:01.968    12000
10             00:00:17.543     00:00:01.043    13043
Run Code Online (Sandbox Code Playgroud)

我希望能够为CumSum [ms]提供最大值,之后累积和将从0重新开始.例如,如果在上面的示例中最大值为3000,则结果将如下所示:

Transaction_ID  Time            TimeDelta       CumSum[ms]
1              00:00:04.500     00:00:00.000    000
2              00:00:04.600     00:00:00.100    100
3              00:00:04.762     00:00:00.162    262
4              00:00:05.543     00:00:00.781    1043
5              00:00:09.567     00:00:04.024    0
6              00:00:10.654     00:00:01.087    1087
7              00:00:14.300     00:00:03.646    0 …
Run Code Online (Sandbox Code Playgroud)

python timedelta pandas cumsum

5
推荐指数
1
解决办法
1693
查看次数

Excel输出中的Python Pandas自定义时间格式

我曾经pandas.groupby将熊猫DataFrame分为两列,并计算平均时间和中值时间。我得到的数据集看起来与此类似:

Size        Category        Average Time        Median Time
 1             A            0.002056385         0.000310995
               B                                0.000310995
               C            0.000310995
 10            A                                0.001852681
               B            0.000310995
               C            0.000310995
Run Code Online (Sandbox Code Playgroud)

我想将此表导出为ex​​cel,然后将时间列格式设置为Excel中的自定义格式,例如(hh:mm:ss.000)。换句话说,我想将时间视为毫秒级的时间。例如,以这种方式格式化的0.000310995显示为00:00:26.870(26.870秒)。

有人对如何完成这项壮举有任何见识吗?

更新:

通过使用,我已经靠近了一点to_datetime(df['Average Time'], unit='d')。现在,我的时间像1970-01-01 00:02:57.638400在DataFrame中一样格式化。但是,当to_excel用于导出到Excel时,它们的格式1970-01-01 00:02:58与Excel输出中的格式相同。此时,我只需要删除日期部分并增加毫秒精度即可实现我的目标。有什么想法吗?

非常感谢您提供的任何帮助-

python excel formatting milliseconds pandas

3
推荐指数
1
解决办法
5823
查看次数

Python pandas Dataframe来自csv的第一行和最后一行

全部 -

我期待从一个非常大的csv的第一行和最后一行创建一个pandas DataFrame.本练习的目的是能够轻松地从这些csv文件中的第一个和最后一个条目中获取一些属性.我使用以下方法抓住csv的第一行没有问题:

pd.read_csv(filename, nrows=1)
Run Code Online (Sandbox Code Playgroud)

我也可以通过各种方式抓取文本文件的最后一行,例如:

with open(filename) as f:
    last_line = f.readlines()[-1]
Run Code Online (Sandbox Code Playgroud)

但是,将这两个东西放到一个DataFrame中会让我感到厌恶.有关如何最好地实现这一目标的任何见解?

编辑注意:我正在尝试完成此任务,而不是首先将所有数据加载到单个DataFrame中,因为我正在处理相当大(> 15MM行)的csv文件.

谢谢!

python csv dataframe pandas

3
推荐指数
3
解决办法
1万
查看次数

标签 统计

pandas ×4

python ×4

csv ×1

cumsum ×1

dataframe ×1

excel ×1

formatting ×1

milliseconds ×1

numpy ×1

timedelta ×1