반응형
다음과 같은 DataFrame
이 있습니다.
Emp1 Empl2 date Company
0 0 0 2012-05-01 apple
1 0 1 2012-05-29 apple
2 0 1 2013-05-02 apple
3 0 1 2013-11-22 apple
18 1 0 2011-09-09 google
19 1 0 2012-02-02 google
20 1 0 2012-11-26 google
21 1 0 2013-05-11 google
이 DataFrame
에 대해 MultiIndex
를 설정하기위한 회사와 날짜를 전달하고 싶습니다. 현재 기본 색인이 있습니다. df.set_index ([ 'Company', 'date'], inplace = True)
를 사용하고 있습니다.
df = pd.DataFrame()
for c in company_list:
row = pd.DataFrame([dict(company = '%s' %s, date = datetime.date(2012, 05, 01))])
df = df.append(row, ignore_index = True)
for e in emp_list:
dataset = pd.read_sql("select company, emp_name, date(date), count(*) from company_table where = '"+s+"' and emp_name = '"+b+"' group by company, date, name LIMIT 5 ", con)
if len(dataset) == 0:
row = pd.DataFrame([dict(sitename='%s' %s, name = '%s' %b, date = datetime.date(2012, 05, 01), count = np.nan)])
dataset = dataset.append(row, ignore_index=True)
dataset = dataset.rename(columns = {'count': '%s' %b})
dataset = dataset.groupby(['company', 'date', 'emp_name'], as_index = False).sum()
dataset = dataset.drop('emp_name', 1)
df = pd.merge(df, dataset, how = '')
df = df.sort('date', ascending = True)
df.fillna(0, inplace = True)
df.set_index(['Company', 'date'], inplace=True)
print df
하지만이 DataFrame
을 인쇄하면 None
이 인쇄됩니다. 나는이 솔루션을 stackoverflow에서 보았습니다. 이것이 올바른 방법이 아닙니까? 또한 company와 date 열의 위치를 섞어서 company가 첫 번째 인덱스가되고 date가 Hierarchy에서 두 번째 인덱스가되도록하고 싶습니다. 이것에 대한 아이디어가 있습니까?
해결 방법
inplace를 전달하면 원래 변수를 변경하고 None을 반환하고 함수가 수정 된 데이터 프레임을 반환하지 않으면 None을 반환합니다.
is_none = df.set_index(['Company', 'date'], inplace=True)
df # the dataframe you want
is_none # has the value None
그래서 다음과 같은 줄이있을 때 :
df = df.set_index(['Company', 'date'], inplace=True)
먼저 df
...를 수정하지만 df
를 None으로 설정합니다!
즉, 다음 행을 사용해야합니다.
df.set_index(['Company', 'date'], inplace=True)
참조 페이지 https://stackoverflow.com/questions/24041436
반응형
'파이썬' 카테고리의 다른 글
파이썬 Python의 연산자 오버로딩에 대한 종합 가이드 (0) | 2020.12.14 |
---|---|
파이썬 Add column with constant value to pandas dataframe (0) | 2020.12.14 |
파이썬 qtableWidget PyQT에 행을 추가하는 방법은 무엇입니까? (0) | 2020.12.13 |
파이썬 기본 동작을 중단하지 않고 Python에서 __getattr__을 어떻게 재정의합니까? (0) | 2020.12.13 |
파이썬 HTTPResponse object -- JSON object must be str, not 'bytes' (0) | 2020.12.13 |
댓글