[英]Creating a dictionary object column from two other columns in a pandas dataframe
[英]Pandas DataFrame add column by two columns from other DataFrame
我正在用 Python Pandas 學習數據科學。 但是,我不擅長處理數據。 所以,我需要一些幫助。
df1
>>> df1
stamp id col1 col2
0 100000 1 100 60
1 100000 2 100 30
2 100001 1 10 10
3 100001 1 20 30
4 100001 2 20 10
5 100001 2 20 90
6 100001 3 30 10
7 100002 1 300 30
8 100002 4 40 60
df2
>>> df2
start end id val
0 100000 100001 1 1
1 100002 100003 4 1
使用 python3 pandas dataframe,如何在“開始”和“結束”值之間具有相同“id”值和“stamp”值的數據中添加新列?
@想要做出這樣的結果
>>> result
stamp id col1 col2 val
0 100000 1 100 60 1
1 100000 2 100 30 0
2 100001 1 10 10 1
3 100001 1 20 30 1
4 100001 2 20 10 0
5 100001 2 20 90 0
6 100001 3 30 10 0
7 100002 1 300 30 0
8 100002 4 40 60 1
我怎樣才能做到?
嘗試
result = pd.DataFrame()
df2['stamp'] = df2['start']
result = pd.merge(df1,df2, on='stamp')
熔化第二個數據幀(df2),以便開始和結束列“熔化”成一列; 然后繼續將新的 dataframe 與df1
合並,將stamp
和id
作為合並列,並用 0 填充 null 值
df2 = df2.melt(["id", "val"], value_name="stamp")
df1.merge(df2.drop("variable", axis=1), on=["stamp", "id"], how="left").fillna(0)
stamp id col1 col2 val
0 100000 1 100 60 1.0
1 100000 2 100 30 0.0
2 100001 1 10 10 1.0
3 100001 1 20 30 1.0
4 100001 2 20 10 0.0
5 100001 2 20 90 0.0
6 100001 3 30 10 0.0
7 100002 1 300 30 0.0
8 100002 4 40 60 1.0
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.