Pandas在DF创建期间添加额外的空列(Pandas add additional empty columns during DF creation)
我越来越:
AssertionError: 14 columns passed, passed data had 12
columns.
错误是不言自明的,我正在从列表列表中创建一个DataFrame,每个列表实际上包含12个字段。 如何强制pandas.DataFrame在一次操作中添加带NaN的额外列。 这就是我创建df的方式。
pandas.DataFrame(results, columns=FIELDS)
有没有办法在DataFrame创建中简化这一点,而不必这样做:
pandas.DataFrame(results, columns=FIELDS_12)
df["ExtraField13"] = np.nan
df["ExtraField14"] = np.nan
I'm getting:
AssertionError: 14 columns passed, passed data had 12
columns.
Error is self-explanatory, I'm creating a DataFrame from a list of lists, each list in fact contains 12 fields. How can I force pandas.DataFrame to add extra columns with NaN in one operation. This is how Im creating the df.
pandas.DataFrame(results, columns=FIELDS)
Is there a way to simplify this in DataFrame creation, without having to do this:
pandas.DataFrame(results, columns=FIELDS_12)
df["ExtraField13"] = np.nan
df["ExtraField14"] = np.nan
原文:https://stackoverflow.com/questions/42238024
2020-02-27 23:56
满意答案
好吧,你不需要像上面那样用逐行的单独列分配硬编码。 这做了类似的事情,但使用循环代替填充列:
>>> import pandas as pd
>>> df = pd.DataFrame({'A': [1,2,3], 'B': [4,5,6]})
>>> df
A B
0 1 4
1 2 5
2 3 6
>>> def pad_cols(df, n_cols):
... while len(df.columns) < n_cols:
... df['padded' + str(len(df.columns)+1)]