我从多行文本文件中提取数据点,并try 将组数据添加到数据帧中的单行,但我在自己的行上获取每个数据点,我想将其展平为2行GROUP1和GROUP2.我对Python 还是个新手.此外,如果有一种更有效的方法来做到这一点,那也是很好的.我试了groupby()
次,但这似乎不起作用?先谢谢你.
import pandas as pd
data = """
Jan 2024
Group1 02/02/2024
dog 10 20
cat 21 32
Group2 05/02/2024
dog 23 45
cat 45 65
owl 24 12
monthly
Admin 02 22
clean 05 32
"""
extract = []
dog, cat, owl = [], [], []
for line in data.splitlines():
a = c = e = ''
# print(line)
if 'Group' in line:
group = line.rsplit()[0]
if 'dog' in line or 'cat' in line or 'owl' in line:
if line.startswith("dog"):
dog, a, b = line.split()
elif line.startswith("cat"):
cat, c, d = line.split()
elif line.startswith("owl"):
owl, e, f = line.split()
extract.append({
'group': group,
'dog': a,
'cat': c,
'owl': e
})
df = pd.DataFrame(extract)
df = df[['group', 'dog', 'cat', 'owl']]
print(df)
目前,我得到了以下信息:
group dog cat owl
0 Group1 10
1 Group1 21
2 Group2 23
3 Group2 45
4 Group2 24
我想要的是:
group dog cat owl
0 Group1 10 21
1 Group2 23 45 24