我有一个包含许多标签的Excel工作簿。 每个选项卡与其他选项卡具有相同的标头集。 我想将每个选项卡中的所有数据合并到一个数据框中(不重复每个选项卡的标题)。
到目前为止,我已经尝试过了:
import pandas as pd
xl = pd.ExcelFile('file.xlsx')
df = xl.parse()
可以在解析参数中使用某些内容,这意味着"所有电子表格"? 或者这是错误的做法?
提前致谢!
更新:我试过了:
a=xl.sheet_names
b = pd.DataFrame()
for i in a:
b.append(xl.parse(i))
b
但它不是"工作"。
答案 0 :(得分:13)
这是一种方法 - 将所有工作表加载到数据框的字典中,然后将字典中的所有值连接到一个数据框中。
import pandas as pd
将sheetname设置为None,以便将所有工作表加载到数据框的dict中 并忽略索引以避免以后重叠值(请参阅@bunji的评论)
df = pd.read_excel('tmp.xlsx', sheetname=None, ignore_index=True)
然后连接所有数据帧
cdf = pd.concat(df.values())
print(cdf)
答案 1 :(得分:0)
public class MainActivity extends AppCompatActivity {
private ImageView imageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imageView = findViewById(R.id.image);
String urlImg="https://appscp.dansyo.com/apps-upload/da8c2cdaceaf82e9f066264e38750c8e.jpeg";
new LoadAsync().execute(urlImg);
}
public static Bitmap getBitmapFromURL(String src) {
try {
URL url = new URL(src);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoInput(true);
connection.connect();
InputStream input = connection.getInputStream();
return BitmapFactory.decodeStream(input);
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
private class LoadAsync extends AsyncTask<String, Bitmap, Bitmap>{
@Override
protected Bitmap doInBackground(String... strings) {
return getBitmapFromURL(strings[0]);
}
@Override
protected void onPostExecute(Bitmap bitmap) {
super.onPostExecute(bitmap);
imageView.setImageBitmap(bitmap);
}
}
}