将DataFrame添加到{Key: empty DataFrame (with columns)}中的空DataFra



我很难理解这个

我有一个常规的df(与字典中的空df相同的列)和一个空df,它是字典中的一个值(字典中的键是基于某些输入的变量,因此可以只是一个键/值对或多个键/值对-认为这可能是相关的)。字典结构本质上是:

{key: [[Empty DataFrame
Columns: [list of columns]
Index: []]]}

我使用以下代码来尝试添加数据:

dict[key].append(df, ignore_index=True)
我得到的错误是:
temp_dict[product_match].append(regular_df, ignore_index=True)
TypeError: append() takes no keyword arguments

这个错误是由于我错误地指定了我试图将df附加到的值(就像我试图将df附加到键而不是这里)或其他东西吗?

您的字典在键处包含一个列表列表,我们可以在显示的输出中看到:

{key: [[Empty DataFrame Columns: [list of columns] Index: []]]}
#     ^^ list starts                                        ^^ list ends

因此dict[key].append为主叫列表。@nandoquintana提到的追加

添加到DataFrame访问列表中的特定元素:

temp_dict[product_match][0][0].append(df, ignore_index=True)

注意append没有inplace版本。appendalways生成一个新的DataFrame:

示例程序:

import numpy as np
import pandas as pd
temp_dict = {
'key': [[pd.DataFrame()]]
}
product_match = 'key'
np.random.seed(5)
df = pd.DataFrame(np.random.randint(0, 100, (5, 4)))
temp_dict[product_match][0][0].append(df, ignore_index=True)
print(temp_dict)

输出(temp_dict未更新):

{'key': [[Empty DataFrame
Columns: []
Index: []]]}

新的DataFrame需要被分配到正确的位置。

一个新变量:

some_new_variable = temp_dict[product_match][0][0].append(df, ignore_index=True)

some_new_variable

0   1   2   3
0  99  78  61  16
1  73   8  62  27
2  30  80   7  76
3  15  53  80  27
4  44  77  75  65

或者返回列表:

temp_dict[product_match][0][0] = (
temp_dict[product_match][0][0].append(df, ignore_index=True)
)

temp_dict

{'key': [[    0   1   2   3
0  99  78  61  16
1  73   8  62  27
2  30  80   7  76
3  15  53  80  27
4  44  77  75  65]]}

假设这里的DataFrame实际上是一个空的DataFrame,append是不必要的,因为只需更新键处的值即可使DataFrame工作:

temp_dict[product_match] = df

temp_dict

{'key':     0   1   2   3
0  99  78  61  16
1  73   8  62  27
2  30  80   7  76
3  15  53  80  27
4  44  77  75  65}

或者如果需要list of list:

temp_dict[product_match] = [[df]]

temp_dict

{'key': [[    0   1   2   3
0  99  78  61  16
1  73   8  62  27
2  30  80   7  76
3  15  53  80  27
4  44  77  75  65]]}

也许你在dict[key]有一个空列表?

请记住"list方法(不像Pandas的dataframe方法)只接收一个参数:https://docs.python.org/3/tutorial/datastructures.html#more-on-listshttps://pandas.pydata.org/docs/reference/api/pandas.DataFrame.append.html

相关内容

  • 没有找到相关文章

最新更新