如何在没有 DataFrame 名称的情况下引用 groupby 链语句中的索引属性?
How to reference index attributes in groupby chain statement without the DataFrame name?
有没有办法在像这样创建 DataFrame 后在链中通过 index.attributes 写入 groupby
?
pd.read_excel('some_excel.xlsx').groupby(index.time)['some_var'].sum()
我可以在两行中通过按名称引用 DataFrame 来完成此操作:
a = pd.read_excel('some_excel.xlsx')
b = a.groupby(a.index.time)['some_var'].sum()
或者像这样在一行中创建虚拟列:
pd\
.read_excel('some_excel.xlsx')\
.assign(time = lambda x: x.index.time)\
.groupby('time')\
['some_var'].sum()
但是不知道有没有不用额外赋值的单行方式?
感谢您的回答或link。
P.S。最初索引是日期时间(例如'2018-05-01 13:15:00')列,并且没有名称为'time'的列。
所以实际上,如果'time'是索引的一个属性,你可以在groupby
中使用一个lambda
,例如:
pd.read_excel('some_excel.xlsx').groupby(lambda x: x.time)['some_var'].sum()
它应该可以工作。
有没有办法在像这样创建 DataFrame 后在链中通过 index.attributes 写入 groupby
?
pd.read_excel('some_excel.xlsx').groupby(index.time)['some_var'].sum()
我可以在两行中通过按名称引用 DataFrame 来完成此操作:
a = pd.read_excel('some_excel.xlsx')
b = a.groupby(a.index.time)['some_var'].sum()
或者像这样在一行中创建虚拟列:
pd\
.read_excel('some_excel.xlsx')\
.assign(time = lambda x: x.index.time)\
.groupby('time')\
['some_var'].sum()
但是不知道有没有不用额外赋值的单行方式?
感谢您的回答或link。
P.S。最初索引是日期时间(例如'2018-05-01 13:15:00')列,并且没有名称为'time'的列。
所以实际上,如果'time'是索引的一个属性,你可以在groupby
中使用一个lambda
,例如:
pd.read_excel('some_excel.xlsx').groupby(lambda x: x.time)['some_var'].sum()
它应该可以工作。