pands & numpy 笔记

本文介绍了在Pandas中使用append()函数处理空DataFrame时的注意事项,包括如何正确传递PandasSeries或DataFrame,以及在使用iloc/loc索引和标量值赋值时的细节。特别提到了如何处理一维向量结果和处理不同长度系列时保持DataFrame结构的完整性。
摘要由CSDN通过智能技术生成

一、给空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()。其中行拼接会分割数据,列拼接是拼接在一起,连续无逗号分割

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值