我正在创建一个脚本,用户可以在其中输入* CSV文件。此CSV文件具有多个“必需列”(如果这些列不存在,则引发错误)和“默认列”(由此,如果未提供这些列,则假定它们具有默认值)。我对如何处理后者感到困惑。
这是一个具体的例子:
import pandas as pd
df = pd.read_csv("inputfile1.csv")
print(df)
filename category type
0 records1.txt 3 A1
1 records2.txt 4 A1
2 records7.txt 5 A1
3 records8.txt 1 C4
该文件具有两个必填列
filename
和category
,以及默认列type
。如果用户输入的是:import pandas as pd
df = pd.read_csv("inputfile1b.csv")
print(df)
filename category
0 records1.txt 3
1 records2.txt 4
2 records7.txt 5
3 records8.txt 1
我假设
type
的每一行的值都是A1
。如何设置这些默认值?一种尝试是检查该列是否存在。如果没有,以某种方式使这些值
A1
if 'type' not in df.columns:
df.type = "A1"
但是,如果某些行没有值怎么办?这些也应被视为具有默认值
A1
的行import pandas as pd
df = pd.read_csv("inputfile1c.csv")
print(df)
filename category type
0 records1.txt 3 ### this is A1
1 records2.txt 4 A1
2 records7.txt 5 ### this is A1
3 records8.txt 1 C4
最佳答案
fillna
可以工作
if 'type' not in df:
df['type'] = "A1"
else:
df['type'].fillna('A1', inplace=True)
关于python - 如何为 Pandas 数据框假设“默认列”?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47785605/