Python, 解析列数据, pandas

6 浏览
0 Comments

Python, 解析列数据, pandas

请查看下面的图像:

enter image description here

我正在尝试从第1列和第7列中提取信息并将它们合并在一起。

我以前做过这种操作,但是如您在上面的图像中注意到的,第1列的一些信息分散在多行中,而第7列的信息则逐行分隔。

我如何将适当的信息分组在一起?以便得到以下期望的结果:

x = [('1900ISR', 0), ('2800', 8000, 0), ('2900ISR', 0, 0), ('3900ISR', 0), ('800BB', 0),('ACEAPP',0),('AIR120A',899),('AIRCMN', 59), ('APP',7800),('ASAMID', 5000, 0, 0, 0, 0), ('C4500', 36990),('C6000', 297000, 70000, 12000,0,0, 60000)]

我尝试如下操作:

df1 = pd.read_excel("EXCELFILENAME", parse_cols = "B")
df2 = pd.read_excel("EXCELFILENAME", parse_cols = "H")
df1 = df1.values.tolist()
df2 = df2.values.tolist()
a = list(zip(df1,df2))
print(a)

然而,上面的代码是不正确的,因为它输出了一个将期望列一起压缩的列表,但是它没有考虑到第一列中与某些输入关联的多行。

更具体地说,见下面的内容:

输出的片段:

[(['1900ISR'], [0.0]), (['2800'], [8000.0]), (['2900ISR'], [0.0]), (['3900ISR'], [0.0]), (['800BB'], [0.0]), (['ACEAPP'], [0.0]), (['AIR120A'], [0.0]), (['AIRCMN'], [0.0]), (['APP'], [899.0])]

在输出中,AIR120A应该与关联的数字899一起出现,但是它包含了先前未与相应条目关联的不正确的0.0。

有办法实现我期望的结果吗?

0
0 Comments

Python中的pandas库提供了一种强大的数据分析工具,可以处理各种数据操作。然而,在处理数据时,有时会遇到一些问题,比如解析列数据的问题。本文将介绍如何解决这个问题。

问题的原因是,当我们处理数据时,有时需要将索引值移动到一个列中。这可以通过在DataFrame上使用reset_index方法来实现。下面是解决方法的代码示例:

df.reset_index(inplace=True)

这段代码将索引值移动到一个名为"index"的列中。接下来,我们可以使用concatenate方法将该列与其他列进行连接。如果需要重新设置索引,可以使用reindex方法。

这个问题通常在处理数据时遇到,特别是在需要对列数据进行解析时。解析列数据可以是将多个列数据合并为一个,或者将一个列数据拆分为多个。

解决这个问题的方法是使用pandas库中的reset_index方法。该方法将索引值移动到一个列中,使得我们可以方便地进行数据操作。使用这个方法后,我们可以使用concatenate方法将该列与其他列进行连接,或者使用reindex方法重新设置索引。

总结一下,当我们在Python中使用pandas库处理数据时,有时会遇到解析列数据的问题。这个问题的原因是需要将索引值移动到一个列中。为了解决这个问题,我们可以使用reset_index方法将索引值移动到一个列中,然后使用concatenate方法连接列数据,或使用reindex方法重新设置索引。这些方法可以帮助我们更方便地处理数据,提高数据分析的效率。

0