我有一個資料集,如果特定列中缺少此值,我想在其中追加行。
資料
ID Date type energy
AA Q1 2022 a 1
AA Q2 2022 ok 1
AA Q3 2022 yes 1
AA Q4 2022 yes 4
FC Q1 2022 no 4
FC Q2 2022 no 4
FC Q3 2022 yes 45
FC Q4 2022 yes 5
期望的
ID Date type energy
AA Q1 2022 a 1
AA Q2 2022 ok 1
AA Q3 2022 yes 1
AA Q4 2022 yes 4
FC Q1 2022 no 4
FC Q2 2022 no 4
FC Q3 2022 yes 45
FC Q4 2022 yes 5
BC Q1 2022 0
DA Q1 2022 0
BC Q1 2023 0
DA Q1 2023 0
正在做
stat = {
'BC':'Q1 2022', Q1 2023
'DA':'Q1 2022', Q1 2023 }
df0 = df.append(pd.DataFrame({'ID':[x for x in stat], 'Date':[stat[x] for x in stat]}))
df1 = df.merge(df0, how='left').fillna({'energy': 0})
但是,這不是附加的,不確定如何在此腳本中附加值字典。我仍在研究中,任何建議表示贊賞。
uj5u.com熱心網友回復:
您可以通過各種方式將新行附加到 a dataframe。其中之一是使用lists和loc方法:
import pandas as pd
data = pd.read_csv('data.csv', sep=';')
new_data = [
['BC', 'Q1 2022', '', 0],
['DA', 'Q1 2022', '', 0],
['BC', 'Q1 2023', '', 0],
['DA', 'Q1 2023', '', 0]
]
for row in new_data:
data.loc[len(data)] = row
print(data)
這將為您提供以下輸出:
ID Date type energy
0 AA Q1 2022 a 1
1 AA Q2 2022 ok 1
2 AA Q3 2022 yes 1
3 AA Q4 2022 yes 4
4 FC Q1 2022 no 4
5 FC Q2 2022 no 4
6 FC Q3 2022 yes 45
7 FC Q4 2022 yes 5
8 BC Q1 2022 0
9 DA Q1 2022 0
10 BC Q1 2023 0
11 DA Q1 2023 0
另一方面,如果你想dictonaries具體使用,那么你可以使用append方法:
data = pd.read_csv('data.csv', sep=';')
new_data = {
'ID': ['BC', 'DA', 'BC', 'DA'],
'Date': ['Q1 2022', 'Q1 2022', 'Q1 2023', 'Q1 2023'],
'type': ['', '', '', ''],
'energy': [0, 0, 0, 0]
}
data = data.append(pd.DataFrame(new_data), ignore_index=True)
print(data)
它將為您提供與以前相同的輸出。
在這里您可以找到有關如何將資料附加到的更多資訊dataframe:將行附加到 DataFrame 的快速示例
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/511908.html
標籤:Python熊猫麻木的
