pandas DataFrame select 具体数据
pandas DataFrame select specific data
我只想在 pandas 中的 select 第 5 行、第 10 行和第 14 行构建一个 for 循环。
enter image description here
实际文件包含数千行类似格式。请教我一个可以遍历整个文件的函数
非常感谢!!!
附上我目前的进度:
df = pd.read_csv('C:/Users/ymx19/Desktop/EHS/Location/results/Batch3_enterprise_with_missing_level/HOU.csv',header = 0)
df = df.dropna(axis ='columns',how ='all')
headers_list = [x for x in df.columns]
count = len(headers_list)
k = headers_list[-1]
maxlevel = df[df[k].notna()].drop_duplicates(subset= headers_list, keep="last")
while count > 3:
k = headers_list[-1]
headers_list.pop()
z = headers_list[-1]
lower_level = df.drop_duplicates(subset=headers_list, keep="last")
lower_level = lower_level[lower_level[z].notna() & lower_level[k].isna()]
maxlevel.append(lower_level)
count -= 1
maxlevel.to_csv('C:\Users\ymx19\Desktop/EHS\Location\results\test\HOU.csv', index = False)
问题:最后的 maxlevel.csv 没有包含来自 for 循环的任何附加值
通常,您可以使用 df.iloc[start_row:end_row, start_column:end_column]
进行切片,或者您可以 select 使用 df.iloc[[4,9,13]]
.
的特定行
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.iloc.html
如果您想删除重复项,您可以使用:
df.drop_duplicates(subset=["Customer", "Level1", "Level2"], keep="last)
.
https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.drop_duplicates.html
我只想在 pandas 中的 select 第 5 行、第 10 行和第 14 行构建一个 for 循环。
enter image description here
实际文件包含数千行类似格式。请教我一个可以遍历整个文件的函数
非常感谢!!!
附上我目前的进度:
df = pd.read_csv('C:/Users/ymx19/Desktop/EHS/Location/results/Batch3_enterprise_with_missing_level/HOU.csv',header = 0)
df = df.dropna(axis ='columns',how ='all')
headers_list = [x for x in df.columns]
count = len(headers_list)
k = headers_list[-1]
maxlevel = df[df[k].notna()].drop_duplicates(subset= headers_list, keep="last")
while count > 3:
k = headers_list[-1]
headers_list.pop()
z = headers_list[-1]
lower_level = df.drop_duplicates(subset=headers_list, keep="last")
lower_level = lower_level[lower_level[z].notna() & lower_level[k].isna()]
maxlevel.append(lower_level)
count -= 1
maxlevel.to_csv('C:\Users\ymx19\Desktop/EHS\Location\results\test\HOU.csv', index = False)
问题:最后的 maxlevel.csv 没有包含来自 for 循环的任何附加值
通常,您可以使用 df.iloc[start_row:end_row, start_column:end_column]
进行切片,或者您可以 select 使用 df.iloc[[4,9,13]]
.
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.iloc.html
如果您想删除重复项,您可以使用:
df.drop_duplicates(subset=["Customer", "Level1", "Level2"], keep="last)
.
https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.drop_duplicates.html