반응형
여러 개의 빈 열을 팬더 DataFrame에 추가
여러 개의 빈 열을 a에 추가하려면 어떻게 해야 합니까?DataFrame리스트에서?
할 수 있습니다.
df["B"] = None
df["C"] = None
df["D"] = None
하지만 난 할 수 없어요
df[["B", "C", "D"]] = None
KeyError: "['B' 'C' 'D'] not in index"
새 열을 추가하는 데 사용할 수 있습니다.
In [18]: df = pd.DataFrame(np.random.randint(10, size=(5,1)), columns=['A'])
In [19]: df
Out[19]:
A
0 4
1 7
2 0
3 7
4 6
In [20]: df.reindex(columns=list('ABCD'))
Out[20]:
A B C D
0 4 NaN NaN NaN
1 7 NaN NaN NaN
2 0 NaN NaN NaN
3 7 NaN NaN NaN
4 6 NaN NaN NaN
reindex나열된 순서대로 열이 나타나는 새 DataFrame을 반환합니다.
In [31]: df.reindex(columns=list('DCBA'))
Out[31]:
D C B A
0 NaN NaN NaN 4
1 NaN NaN NaN 7
2 NaN NaN NaN 0
3 NaN NaN NaN 7
4 NaN NaN NaN 6
그reindex방법적으로fill_value매개 변수도:
In [22]: df.reindex(columns=list('ABCD'), fill_value=0)
Out[22]:
A B C D
0 4 0 0 0
1 7 0 0 0
2 0 0 0 0
3 7 0 0 0
4 6 0 0 0
데이터 프레임을 사용합니다.
In [23]:
df = pd.DataFrame(columns=['A'])
df
Out[23]:
Empty DataFrame
Columns: [A]
Index: []
In [24]:
pd.concat([df,pd.DataFrame(columns=list('BCD'))])
Out[24]:
Empty DataFrame
Columns: [A, B, C, D]
Index: []
따라서 원래 df를 포함하는 목록과 추가하려는 열이 있는 새 목록을 통과하면 추가 열이 있는 새 df가 반환됩니다.
주의 사항: 다른 답변 및/또는 코멘트 토론에서 성과에 대한 논의를 확인합니다.reindex성능이 중요한 경우 선호할 수 있습니다.
이전 열의 이름을 다시 쓰지 않으려면 reindex를 사용할 수 있습니다.
df.reindex(columns=[*df.columns.tolist(), 'new_column1', 'new_column2'], fill_value=0)
전체 예제:
In [1]: df = pd.DataFrame(np.random.randint(10, size=(3,1)), columns=['A'])
In [1]: df
Out[1]:
A
0 4
1 7
2 0
In [2]: df.reindex(columns=[*df.columns.tolist(), 'col1', 'col2'], fill_value=0)
Out[2]:
A col1 col2
0 1 0 0
1 2 0 0
열 이름을 가진 목록이 이미 있는 경우:
In [3]: my_cols_list=['col1','col2']
In [4]: df.reindex(columns=[*df.columns.tolist(), *my_cols_list], fill_value=0)
Out[4]:
A col1 col2
0 1 0 0
1 2 0 0
대체 솔루션 요약:
columns_add = ['a', 'b', 'c']
루프의 경우:
for newcol in columns_add: df[newcol]= Nonedict 메서드:
df.assign(**dict([(_,None) for _ in columns_add]))튜플 할당:
df['a'], df['b'], df['c'] = None, None, None
루프만 사용하지 않는 이유:
for newcol in ['B','C','D']:
df[newcol]=np.nan
팬더 방송을 이용할 수 있습니다.
df = pd.DataFrame({'A': [1, 1, 1]})
df[['B', 'C']] = 2, 3
# df[['B', 'C']] = [2, 3]
결과:
A B C
0 1 2 3
1 1 2 3
2 1 2 3
빈 열 추가하기
df[['B', 'C', 'D']] = 3 * [np.nan]
결과:
A B C D
0 1 NaN NaN NaN
1 1 NaN NaN NaN
2 1 NaN NaN NaN
사용합니다.
df["B"], df["C"], df["D"] = None, None, None
아니면
df["B"], df["C"], df["D"] = ["None" for a in range(3)]
재미있는 방법 목록에 추가해 보겠습니다.
columns_add = ['a', 'b', 'c']
df = df.assign(**dict(zip(columns_add, [0] * len(columns_add)))
언급URL : https://stackoverflow.com/questions/30926670/add-multiple-empty-columns-to-pandas-dataframe
반응형
'programing' 카테고리의 다른 글
| PayPal IPN 응답에서 Woocommerce 기능은 무엇입니까? (0) | 2023.10.17 |
|---|---|
| 테마 기능에서 도우미 기능을 정의하고 사용하는 방법.php? (0) | 2023.10.17 |
| ES6 모듈의 수입을 조롱하려면 어떻게 해야 합니까? (0) | 2023.10.17 |
| jQuery에서 PHP 함수를 호출하시겠습니까? (0) | 2023.10.17 |
| 장고와 MySQL에 문제가 있습니다.NotSupportedError(django.db.utils).지원되지 않는 오류: MariaDB 10.3 이상이 필요합니다(5.5.65 발견). (0) | 2023.10.12 |