我目前有这个代码.它完美地运作.
它循环遍历文件夹中的excel文件,删除前两行,然后将它们保存为单独的excel文件,并将文件作为附加文件保存在循环中.
目前,每次运行代码时附加的文件都会覆盖现有文件.
我需要将新数据附加到已经存在的Excel工作表的底部('master_data.xlsx)
dfList = []
path = 'C:\\Test\\TestRawFile'
newpath = 'C:\\Path\\To\\New\\Folder'
for fn in os.listdir(path):
# Absolute file path
file = os.path.join(path, fn)
if os.path.isfile(file):
# Import the excel file and call it xlsx_file
xlsx_file = pd.ExcelFile(file)
# View the excel files sheet names
xlsx_file.sheet_names
# Load the xlsx files Data sheet as a dataframe
df = xlsx_file.parse('Sheet1',header= None)
df_NoHeader = df[2:]
data = df_NoHeader
# Save individual dataframe
data.to_excel(os.path.join(newpath, fn))
dfList.append(data)
appended_data = …Run Code Online (Sandbox Code Playgroud) 我有一个数据框,其中包含许多单个单元格中的列表.有些单元格没有列表,只是字符串,有些只是整数或数字.
我想摆脱数据框中的所有列表(保持列表中的值或字符串).我该怎么做?
下面是两个数据帧,一个是"原始数据",其中包含列表,数字和字符串.第二个是我希望创建的干净数据.
这样做最简单,最有效的方法是什么?
import pandas as pd
#create two dataframes, one called raw, one called end result
#raw data
raw_data = {'Name': [['W1'], ['W3'], ['W2'], ['W1'], ['W2'],['W3'],['G1']],
'EVENT':['E1', 'E2', 'E3', 'E4', 'E5','E6','E1'],
'DrillDate': [['01/01/2000'], 23, '04/01/2000', ['05/15/2000'], [''],[''],'02/02/2000']}
dfRaw = pd.DataFrame(raw_data, columns = ['Name','EVENT','DrillDate'])
dfRaw
# cleaned data
clean_data = {'Name': ['W1', 'W3', 'W2', 'W1', 'W2','W3','G1'],
'EVENT':['E1', 'E2', 'E3', 'E4', 'E5','E6','E1'],
'DrillDate': ['01/01/2000', 23, '04/01/2000', '05/15/2000', '','','02/02/2000']}
dfEndResult = pd.DataFrame(clean_data, columns = ['Name','EVENT','DrillDate'])
dfEndResult
Run Code Online (Sandbox Code Playgroud) 我正在尝试在pandas中使用dropna函数.我想将它用于特定列.
如果所有行都具有所有NaN值,我只能弄清楚如何使用它来删除NaN.
我有一个数据框(见下文),我希望在特定列中第一次出现NaN后删除所有行,列"A"
当前代码,仅在所有行值均为NaN时有效.
data.dropna(axis = 0, how = 'all')
data
Run Code Online (Sandbox Code Playgroud)
原始数据帧
data = pd.DataFrame({"A": (1,2,3,4,5,6,7,"NaN","NaN","NaN"),"B": (1,2,3,4,5,6,7,"NaN","9","10"),"C": range(10)})
data
A B C
0 1 1 0
1 2 2 1
2 3 3 2
3 4 4 3
4 5 5 4
5 6 6 5
6 7 7 6
7 NaN NaN 7
8 NaN 9 8
9 NaN 10 9
Run Code Online (Sandbox Code Playgroud)
我希望输出看起来像:
A B C
0 1 1 0
1 2 2 1
2 3 3 2 …Run Code Online (Sandbox Code Playgroud)