gpt4 book ai didi

pandas - 将元组作为行 append 到数据帧

转载 作者:行者123 更新时间:2023-12-02 06:46:36 25 4
gpt4 key购买 nike

我正在寻找一种将行添加到数据框的解决方案。这是我拥有的数据:分组对象(通过按月和年对数据帧进行分组而获得,即在此分组对象中键是[月,年],值是该月和年中的所有行/日期)。

我想提取所有的月份、年份组合并将其放入新的数据框中。 问题:当我迭代分组对象时,月份、行是一个元组,因此我将元组转换为列表并使用 append 命令将其添加到数据帧中。而不是添加为行:1 2014 年2 2014 年2014年3月它被添加到一列中0 11 2014 年0 21 2014 年0 31 2014 年...

我想将这些值存储在新的数据框中。这是我希望新数据框的样子: 月 年 1 2014 年 2 2014 年 2014年3月

我尝试将元组转换为列表,然后尝试了各种其他操作,例如旋转。输入真的很有帮助。

这里是示例代码:

    df=df.groupby(['month','year'])
df = pd.DataFrame()
for key, value in df:
print "type of key is:",type(key)
print "type of list(key) is:",type(list(key))
df = df.append(list(key))
print df

最佳答案

当您执行 groupby 时,生成的 MultiIndex 可用如下:

In [11]: df = pd.DataFrame([[1, 2014, 42], [1, 2014, 44], [2, 2014, 23]], columns=['month', 'year', 'val'])

In [12]: df
Out[12]:
month year val
0 1 2014 42
1 1 2014 44
2 2 2014 23

In [13]: g = df.groupby(['month', 'year'])

In [14]: g.grouper.result_index
Out[14]:
MultiIndex(levels=[[1, 2], [2014]],
labels=[[0, 1], [0, 0]],
names=['month', 'year'])

通常这就足够了,您不需要 DataFrame。如果您这样做,一种方法如下:

In [21]: pd.DataFrame(index=g.grouper.result_index).reset_index()
Out[21]:
month year
0 1 2014
1 2 2014

我以为有一种方法可以得到这个,但想不起来了。

如果您确实想要元组,可以使用.valuesto_series:

In [31]: g.grouper.result_index.values
Out[31]: array([(1, 2014), (2, 2014)], dtype=object)

In [32]: g.grouper.result_index.to_series()
Out[32]:
month year
1 2014 (1, 2014)
2 2014 (2, 2014)
dtype: object

关于pandas - 将元组作为行 append 到数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32876284/

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