gpt4 book ai didi

python - 连接和排序表未按预期工作

转载 作者:行者123 更新时间:2023-12-04 14:02:20 26 4
gpt4 key购买 nike

我有两个表:DFDF2 具有相同的结构,如下所示:

df = [
['2021-10-02', 'abc', 'cash', '1.50'], ['2021-10-02', 'xyz', 'cash', '2.34'], ['2021-10-02', 'abc', 'ex', '4.55'], ['2021-10-02', 'xyz', 'cash', '10.55'],
['2021-10-05', 'jjh', 'cash', '1.20'], ['2021-10-05', 'xyz', 'cash', '0.34'], ['2021-10-05', 'abc', 'cash', '0.43'], ['2021-10-05', 'xyz', 'cash', '34.20'], ['2021-10-05', 'jdh', 'ex', '0.20'], ['2021-10-05', 'xyz', 'hyj', '12.00'],
['2021-10-09', 'jhf', 'ex', '12.30'], ['2021-10-09', 'xyz', 'cash', '1.89'], ['2021-10-09', 'abc', 'ex', '4.05'], ['2021-10-09', 'kgh', 'ex', '3.45'],
]

DF = pd.DataFrame(df, columns = ['date', 'typ', 'method', 'price'])
DF

enter image description here

df2 = [['2021-10-02', '', '', '100'], ['2021-10-05', '', '', '150'], ['2021-10-09', '', '', '234']]
DF2 = pd.DataFrame(df2, columns = ['date', 'typ', 'method', 'price'])
DF2

enter image description here

现在,我想将这两个表(DFDF2)合并为一个表,这样表中的行 DF2 始终位于表 DF 中相对于 date 列的选定日期的末尾。

预期结果:

enter image description here

我尝试像下面这样使用 concat 和后来的 sort_values:

pd.concat([DF, DF2]).sort_values(by = 'date').reset_index(drop = True)

然后,我明白了:

enter image description here

你知道问题出在哪里吗?还是更容易达到预期结果的方法?

感谢您的任何想法。

最佳答案

默认排序在 DataFrame.sort_values如果按一列排序不稳定 quicksort,那么对于预期的输出需要 mergesort,例如:

df = pd.concat([DF, DF2]).sort_values(by = 'date', kind='mergesort', ignore_index=True)
print (df)
date typ method price
0 2021-10-02 abc cash 1.50
1 2021-10-02 xyz cash 2.34
2 2021-10-02 abc ex 4.55
3 2021-10-02 xyz cash 10.55
4 2021-10-02 100
5 2021-10-05 jjh cash 1.20
6 2021-10-05 xyz cash 0.34
7 2021-10-05 abc cash 0.43
8 2021-10-05 xyz cash 34.20
9 2021-10-05 jdh ex 0.20
10 2021-10-05 xyz hyj 12.00
11 2021-10-05 150
12 2021-10-09 jhf ex 12.30
13 2021-10-09 xyz cash 1.89
14 2021-10-09 abc ex 4.05
15 2021-10-09 kgh ex 3.45
16 2021-10-09 234

关于python - 连接和排序表未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69614898/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com