Python Pandas,Dataframe和从Excel文件读取

3
如何从 Excel 文件中读取类似值的数据并合并?
import pandas as pd
import numpy as np
df = pd.read_excel("testfile.xlsx")
print(df)

文件示例:testdata.xlsx
Identifier   Dates
123456       1/1/2021
789101       2/2/2021
221342       3/3/2021
231344       1/1/2021
134562       2/2/2021
135650       2/2/2021
135677       2/2/2021
2246         1/1/2021
24682        3/3/2021
245684       1/1/2021

所需输出数据(合并相应日期的数据):
2/2/2021   789101 134562 135650 135677  
1/1/2021   245684   2246 231344
3/3/2021   24682  221342

1
你想要使用groupby - Matthew Barlowe
1
您是否希望每个字段都有单独的列?(如果是,则这是一个数据透视表) - ALollz
不,我想将所有具有相同日期的数据添加到一行中。例如,对于日期2/2/2021,它具有多个标识符,我希望将2/2/2021的所有标识符放在一行上,依此类推。 - AbbySG
1个回答

3

这样是否解决了你的问题?

df.groupby(['Dates'])['Identifier'].apply(list)

Dates
1/1/2021      [123456, 231344, 2246, 245684]
2/2/2021    [789101, 134562, 135650, 135677]
3/3/2021                     [221342, 24682]
Name: Identifier, dtype: object

如果您不想将其作为列表,而是按照您在问题中指示的那样以空格分隔的字符串形式呈现,那么请尝试这个 -
df.astype({'Identifier':str}).groupby(['Dates'])['Identifier'].apply(' '.join)

Dates
1/1/2021      123456 231344 2246 245684
2/2/2021    789101 134562 135650 135677
3/3/2021                   221342 24682
Name: Identifier, dtype: object

我想将所有具有相同日期的数据添加到一行中。例如,对于日期2/2/2021,它具有多个标识符,我希望将2/2/2021的所有标识符放在一行上,以此类推。 - AbbySG
你有机会尝试上面的方法吗?我相信它解决了你在上面评论中提到的问题。 - Akshay Sehgal
我尝试了,但是没有成功。 - AbbySG
你能详细说明为什么它不起作用吗?你得到了什么输出?你尝试过使用你自己发布的虚拟数据运行它吗? - Akshay Sehgal

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接