gpt4 book ai didi

python - python如何处理pandas中乱七八糟的数据格式?

转载 作者:行者123 更新时间:2023-12-05 03:27:34 25 4
gpt4 key购买 nike

有时我会看到 Stack Overflow 问题中发布的数据,其格式类似于 this question .这不是第一次了,所以我决定问一个关于这个话题的问题。

我将从此处的链接发布数据示例,以防问题被删除。

      itm Date                  Amount 
67 420 2012-09-30 00:00:00 65211
68 421 2012-09-09 00:00:00 29424
69 421 2012-09-16 00:00:00 29877
70 421 2012-09-23 00:00:00 30990
71 421 2012-09-30 00:00:00 61303
72 485 2012-09-09 00:00:00 71781
73 485 2012-09-16 00:00:00 NaN
74 485 2012-09-23 00:00:00 11072
75 485 2012-09-30 00:00:00 113702
76 489 2012-09-09 00:00:00 64731
77 489 2012-09-16 00:00:00 NaN

如您所见,这不是发布可重现数据的正确方式。

Python 代码可以做什么来使该表可用?

最佳答案

当我必须处理这种在 SO 帖子中确实很常见的数据时,我的处理方式是:

  • 首先,复制(ctrl+c 或右键单击)标题行以外的数据(在您的示例中为 itm Date Amount);

  • 然后,运行以下代码:

import pandas as pd

df = pd.read_clipboard()

# save data which was misinterpreted as column header
first_row = df.columns.to_list()

# rename column headers as 0, 1, 2, ...
df.columns = range(df.shape[1])

# Insert first row, sort dataframe, then get rid of first column while saving to csv
df = (
pd.concat([pd.DataFrame(first_row).T, df], ignore_index=True)
.set_index(0)
.to_csv("temp.csv", index=False)
)

这样:

import pandas as pd

df = pd.read_csv("temp.csv")
print(df)
# Output
1 2 3 4
0 420 2012-09-30 00:00:00 65211.0
1 421 2012-09-09 00:00:00 29424.0
2 421 2012-09-16 00:00:00 29877.0
3 421 2012-09-23 00:00:00 30990.0
4 421 2012-09-30 00:00:00 61303.0
5 485 2012-09-09 00:00:00 71781.0
6 485 2012-09-16 00:00:00 NaN
7 485 2012-09-23 00:00:00 11072.0
8 485 2012-09-30 00:00:00 113702.0
9 489 2012-09-09 00:00:00 64731.0
10 489 2012-09-16 00:00:00 NaN

从那里,您可以根据要处理的数据进行一些额外的处理。

在你的例子中:

df = df.drop(columns="3").rename(columns={"1": "itm", "2": "Date", "4": "Amount"})

print(df)
# Output
itm Date Amount
0 420 2012-09-30 65211.0
1 421 2012-09-09 29424.0
2 421 2012-09-16 29877.0
3 421 2012-09-23 30990.0
4 421 2012-09-30 61303.0
5 485 2012-09-09 71781.0
6 485 2012-09-16 NaN
7 485 2012-09-23 11072.0
8 485 2012-09-30 113702.0
9 489 2012-09-09 64731.0
10 489 2012-09-16 NaN

关于python - python如何处理pandas中乱七八糟的数据格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71437220/

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