mat*_*ack 9 python concatenation pandas
更新到 pandas 1.4 后,当使用 frame.append 将字典附加到 Pandas DataFrame 时,我现在收到以下警告。
FutureWarning: The frame.append method is deprecated and will be
removed from pandas in a future version. Use pandas.concat instead.
Run Code Online (Sandbox Code Playgroud)
下面是代码。尽管我想解决该警告,但这仍然有效。
report = report.append({
"period":period,
"symbol":symbol,
"start_date":start_date,
"start_price":start_price,
"start_market_cap":start_market_cap,
"end_date":end_date,
"end_price":end_price,
"end_market_cap":end_market_cap,
"return":return_
},ignore_index=True)
Run Code Online (Sandbox Code Playgroud)
我已将代码更新为以下内容,这会引发不同的警告:
report = pd.concat([report,{
"period":period,
"symbol":symbol,
"start_date":start_date,
"start_price":start_price,
"start_market_cap":start_market_cap,
"end_date":end_date,
"end_price":end_price,
"end_market_cap":end_market_cap,
"return":return_
}],ignore_index=True)
TypeError: cannot concatenate object of type '<class 'dict'>'; only Series and DataFrame objs are valid
Run Code Online (Sandbox Code Playgroud)
2个问题:第一个警告是错误的吗?pandas 1.4 实现这一目标的方法是什么?谢谢。
Sat*_*rav 11
df即使是空的且没有列,@fantabolous 发布的答案也将起作用。
import pandas as pd
df = pd.DataFrame(columns=[])
data_dict = {"a":0,"b":2742,"c":13.38867188,"d":0}
df = pd.concat([df, pd.DataFrame([data_dict])], ignore_index=True)
df
Run Code Online (Sandbox Code Playgroud)
小智 3
用于loc分配单行值:
report.loc[len(report)] = {"period":period,
"symbol":symbol,
"start_date":start_date,
"start_price":start_price,
"start_market_cap":start_market_cap,
"end_date":end_date,
"end_price":end_price,
"end_market_cap":end_market_cap,
"return":return_
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5440 次 |
| 最近记录: |