Mic*_*hal 53 python indexing pandas
我有一个包含多个列和行的数据框df1.简单的例子:
TIME T1 T2
1 10 100
2 20 200
3 30 300
Run Code Online (Sandbox Code Playgroud)
我想创建一个空的数据框df2以及稍后,添加带有计算结果的新列.
在这一刻,我的代码看起来像这样:
df1=pd.read_csv("1.txt",index_col="TIME")
df2=df1.copy()[[]] #copy df1 and erase all columns
Run Code Online (Sandbox Code Playgroud)
...添加两个新列:
df2["results1"],df2["results2"]=df1["T1"]*df["T2"]*3,df1["T2"]+100
Run Code Online (Sandbox Code Playgroud)
有没有更好/更安全/更快的方法来做到这一点?是否可以创建一个空数据框df2并仅从df1复制索引?
Vik*_*kez 79
df2 = pd.DataFrame(index=df1.index)
Run Code Online (Sandbox Code Playgroud)
这将创建一个没有列但只有索引的DataFrame,它将与df1中的索引相同.
wai*_*kuo 11
最好将索引设置为 df1.index.copy()
df2 = pd.DataFrame(index=df1.index.copy())
Run Code Online (Sandbox Code Playgroud)
您可以使用df1.indexisdf2.index检查它们是否是同一个对象