一、给空df赋值
1. append()是用来连接两个 Pandas Series或DataFrame,而不是直接在现有 DataFrame 中添加单个元素。 且预先不用定义空df的行数
# 创建一个空的DataFrame对象
df = pd.DataFrame(columns=['A', 'B'])
# 追加一行数据
df = df.append({'A':1, 'B':2}, ignore_index=True)
注:pandas在2.0后取消了append添加,转为concat【已解决】AttributeError: ‘DataFrame‘ object has no attribute ‘append‘_attributeerror: 'dataframe' object has no attribut-CSDN博客
2. 用.iloc或loc索引赋值给空df时,空的df行列数要设定好
这里2.0版本在没有预设行数也可以动态添加数值。
3. 给df某确定的位置(行,列)赋值,要是标量:对于向量乘积结果是一维的series,要将 结果作为标量值存储在 DataFrame 中,您可以使用 item() 方法。item() 方法可从一维 NumPy 数组或 Pandas Series 中提取单个元素。
4. 直接用列明索引赋值给空df时,接收的参数1维ndarray也可以
5. 当每次给某行或列的series长度不同时,要定义好df的行数,否则df自动对齐行索引,有些过长的列会有数据自动去除情况
6. itertuples():返回每行的数据作为namedtuples,可以通过属性访问列数据。
如果需要遍历 Dataframe 的行并且对性能有要求,那么 df.itertuples()是一个更好的选择。
如果需要修改 Dataframe 的行数据,那么 di.iterrows()可能是一个更好的选择,因为它返回的是一个可以修改的 Series 对象。
注意,直接在遍历过程中修改 Dataframe 可能会导致意想不到的结果,通常建议使用其他方法(如 apply)来修改 DataFrame
例子:
df.iterrows():
for index, row in results.iterrows():
p_max_array = np.array(row['p_max_results'])
df.itertuples():
for row in df.itertuples():
j = row.Index # 获取索引
v_diff = row.v_diff # 获取 v_diff 列的值
二、 numpy操作
1. numpy没有append,可以由list 经append后转为ndarray
2. numpy用np.vstack()拼接行数据,np.hstack()。其中行拼接会分割数据,列拼接是拼接在一起,连续无逗号分割
本文介绍了在Pandas中使用append()函数处理空DataFrame时的注意事项,包括如何正确传递PandasSeries或DataFrame,以及在使用iloc/loc索引和标量值赋值时的细节。特别提到了如何处理一维向量结果和处理不同长度系列时保持DataFrame结构的完整性。
2400

被折叠的 条评论
为什么被折叠?



