![](/img/trans.png)
[英]adding values to pandas dataframe columns based on another dataframe
[英]Adding/inserting values in pandas dataframe based on 1 or more columns
我有2個數據框
date sitename Auto_name AutoCount
2012-05-01 chess.com Autobiographer 8
2012-05-05 chess.com Autobiographer 1
2012-05-15 chess.com Autobiographer 3
和
date sitename Stu_name Student count
2012-05-01 chess.com Student 4
2012-05-02 chess.com Student 2
輸出應如何
date sitename Autoname AutoCount Stu_name Stu_count
2012-05-01 chess.com Autobiographer 8 Student 4
2012-05-02 chess.com Autobiographer 0 Student 2
2012-05-05 chess.com Autobiographer 1 Student 0
2012-05-15 chess.com Autobiographer 3 Student 0
我想將姓名和學生人數從第二位插入第一位,但要基於日期列。 看起來並不困難,但我無法弄清楚這一點。
您可以例如使用merge
功能(請參閱有關合並數據幀的文檔: http : //pandas.pydata.org/pandas-docs/stable/merging.html )。 假設您的數據幀稱為df1
和df2
:
In [13]: df = pd.merge(df1, df2, how='outer')
In [14]: df
Out[14]:
date sitename Auto_name AutoCount Stu_name StudentCount
0 2012-05-01 chess.com Autobiographer 8 Student 4
1 2012-05-05 chess.com Autobiographer 1 NaN NaN
2 2012-05-15 chess.com Autobiographer 3 NaN NaN
3 2012-05-02 chess.com NaN NaN Student 2
在其上方,使用通用列進行合並(在本例中為date
和sitename
),但是您也可以使用on
關鍵字指定列(請參閱docs )。
在下一步中,您可以根據需要填充NaN值。 在示例輸出之后,可以是:
In [15]: df.fillna({'Auto_name':'Autobiographer', 'AutoCount':0, 'Stu_name':'Student', 'StudentCount':0})
Out[15]:
date sitename Auto_name AutoCount Stu_name StudentCount
0 2012-05-01 chess.com Autobiographer 8 Student 4
1 2012-05-05 chess.com Autobiographer 1 Student 0
2 2012-05-15 chess.com Autobiographer 3 Student 0
3 2012-05-02 chess.com Autobiographer 0 Student 2
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.