[英]Pandas: selecting columns in a DataFrame question - e.g. row[1]['Column']
我不明白這行代碼
minimum.append(min(j[1]['Data_Value']))
...特別
j[1]['Data_Value']
我知道完整的代碼返回最小值,並將其存儲在稱為“最小值”的列表中,但是j [1]在那里做什么? 我嘗試使用其他數字來弄清楚,但出現錯誤。 是選擇索引還是其他?
完整代碼如下。 謝謝!
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
%matplotlib notebook
df1 = pd.read_csv('./data/C2A2_data/BinnedCsvs_d400/ed157460d30113a689e487b88dcbef1f5d64cbd8bb7825f5f485013d.csv')
minimum = []
maximum = []
month = []
df1 = df1[~(df1['Date'].str.endswith(r'02-29'))]
times1 = pd.DatetimeIndex(df1['Date'])
df = df1[times1.year != 2015]
times = pd.DatetimeIndex(df['Date'])
for j in df.groupby([times.month, times.day]):
minimum.append(min(j[1]['Data_Value']))
maximum.append(max(j[1]['Data_Value']))
說明
pandas.groupby返回一個元組列表(鍵,數據框)。 密鑰是分組密鑰; 該組的關鍵值。 參見以下示例。
遍歷這些j
意味着遍歷這些元組。
['Data_Value']
占據該數據['Data_Value']
一列。 例
df = pd.DataFrame({'a': [1, 1, 2], 'b': [2, 4, 6]})
df_grouped = df.groupby('a')
for j in df_grouped:
print(f"Groupby key (col a): {j[0]}")
print("dataframe:")
print(j[1])
產量:
Groupby key (col a): 1
dataframe:
a b
0 1 2
1 1 4
Groupby key (col a): 2
dataframe:
a b
2 2 6
更具可讀性的解決方案
另一種更舒適的方式來獲取每個月日組合的Data_Value
的最小值/最大值是這樣的:
data_value_summary = df \
.groupby([times.month, times.day]) \
.agg({'Data_Value': [min, max]}) \
['Data_Value'] # < this removed the 2nd header from the newly created dataframe
minimum = data_value_summary['min']
maximum = data_value_summary['max']
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.