将元组插入空 pandas 数据帧
Inserting a tuple into an empty pandas dataframe
我想在一个空的 DataFrame 中插入一行。但是,对于具有预定义索引的 DataFrame 以及当元素包含提示错误的元组或列表时,这似乎会失败:
ValueError: setting an array element with a sequence.
示例代码如下:
df = pd.DataFrame(columns=['idx1', 'idx2', 'col1', 'col2', 'col3'])
df.set_index(['idx1', 'idx2'], inplace=True)
df.loc[(1,2),:] = [3,4,(5,6)]
print(df)
不清楚列表中的元素对应不同列中的值。您可以先将列表转换为由 DataFrame 的列索引的系列:
df = pd.DataFrame(columns=['idx1', 'idx2', 'col1', 'col2', 'col3'])
df.set_index(['idx1', 'idx2'], inplace=True)
df.loc[(1,2),:] = pd.Series([3,4,(5,6)], index=df.columns)
print(df)
我试过类似的方法。
def with_return(row):
t = [5,6]
return t
df = pd.DataFrame(columns=['idx1', 'idx2', 'col1', 'col2', 'col3'])
df.set_index(['idx1', 'idx2'], inplace=True)
df.loc[(1,2),:] = [3,4,5] #dummy element
df['col3'] = df.apply(with_return, axis=1)
print(df)
或者简单地使用系列,
df.loc[(1,2),:] = pd.Series([3,4,(5,6)], index=df.columns)
仍然没有直接将元组作为元素插入空 DataFrame 中。但只是另一种方法。尽管如此,loc 应该能够处理它。
我想在一个空的 DataFrame 中插入一行。但是,对于具有预定义索引的 DataFrame 以及当元素包含提示错误的元组或列表时,这似乎会失败:
ValueError: setting an array element with a sequence.
示例代码如下:
df = pd.DataFrame(columns=['idx1', 'idx2', 'col1', 'col2', 'col3'])
df.set_index(['idx1', 'idx2'], inplace=True)
df.loc[(1,2),:] = [3,4,(5,6)]
print(df)
不清楚列表中的元素对应不同列中的值。您可以先将列表转换为由 DataFrame 的列索引的系列:
df = pd.DataFrame(columns=['idx1', 'idx2', 'col1', 'col2', 'col3'])
df.set_index(['idx1', 'idx2'], inplace=True)
df.loc[(1,2),:] = pd.Series([3,4,(5,6)], index=df.columns)
print(df)
我试过类似的方法。
def with_return(row):
t = [5,6]
return t
df = pd.DataFrame(columns=['idx1', 'idx2', 'col1', 'col2', 'col3'])
df.set_index(['idx1', 'idx2'], inplace=True)
df.loc[(1,2),:] = [3,4,5] #dummy element
df['col3'] = df.apply(with_return, axis=1)
print(df)
或者简单地使用系列,
df.loc[(1,2),:] = pd.Series([3,4,(5,6)], index=df.columns)
仍然没有直接将元组作为元素插入空 DataFrame 中。但只是另一种方法。尽管如此,loc 应该能够处理它。